詳解屬性封裝

2021-07-14 00:13:10 字數 1479 閱讀 4564

什麼是屬性封裝?

我們先來看看下面這段**

class student 

class program

,年齡:", a._name, a._age);

console.readline();}}

這是一段很簡單的**,乙個學生類,乙個測試類,並給這個物件字段進行賦值操作,這只是正常情況下,我記得我在某個博文上看到這麼一句話「程式設計師的25%的時間是用考慮使用者會輸入什麼奇葩資料「,這裡age我們並沒有什麼邏輯判斷,因此這裡是資料不收我們的控制,使用者可以隨意的輸入資料-1,1000.......等等。

分析:使用者可以隨意輸入資料由兩點引起!許可權、沒有邏輯判斷,導致資料不符合常識,那麼我先從許可權上下手,私有化,但是私有的許可權是當前類可以操作外部類操作部了,因此暴露乙個方法出去,由這個方法負責當前類字段的和外面的聯絡,但是!方法封裝的是物件的物件的行為!而不是封裝資料字段!,所以就用到屬性封裝!

class student 

set

}private int _age;

public int age

set }}

class program

,年齡:", a.name, a.age);

console.readline();

}student類中的name 和age都被封裝為讀寫屬性,

get訪問器 為唯讀屬性//讀 就是返回當前的資料

set訪問器 為只寫屬性//寫  就對封裝的字段進行賦值,運算等操作

包含get和set訪問器 為讀寫屬性//兩者特性都同時擁有

從上面我的**我們可以發現欄位的安全性被提高了,這就是屬性封裝,將字段封裝到內部中,提供對外訪問我的方式.

屬性的型別可以任意型別嗎?

可以,物件,陣列等等。

屬性和方法的區別是什麼?

如果從概念上來解釋就是屬性封裝的是字段,方法封裝的是物件的行為,從語法上來看,方法有()屬性沒有()且屬性沒有返回值。

屬性和字段有什麼區別了?

如果從概念上來解釋就是屬性的字段是保護者,負責欄位的安全,從語法上看字段的許可權是private 屬性是public 

很多時候我們已經養成了一建立某個欄位就會私有化並進行屬性封裝,但是我們並沒有進行什麼邏輯判斷,如果你是手寫**而不是使用快捷鍵等操作,效率是很低下的,如下

private string name;        

public string name

set

}在c#更新到3.0的時候提供了乙個新特性就是 」 自動屬性封裝「!自動屬性封裝提高了**的簡介性!如下:

private string name;    

public string name

效果和原寫法是一樣的,其實這還是不最簡介的,如下去掉換行更加簡介。

private string name;   

public string name

C 類屬性封裝 欄位的詳解

今日敲 時,突然感覺對類的屬性封裝 字段有點犯迷糊了。連基礎的都不知道了,那敲的 怎麼能嚴謹高效的。果斷拿起各種高階程式設計 大全啥的翻起來 這不再把自己的理解寫下來 定義都是直接抄書的 獻給同樣迷糊的小夥伴。先說下類的成員,它分為資料成員和函式成員。資料成員,簡單點可以理解成類的資料,包含了字段 ...

python 屬性封裝

class model name dnn def init self,name self.name name def print name self print self.name classmethod def print cls name cls print cls.name def main ...

C 屬性封裝之初始封裝

以誰做什麼來表達程式的邏輯,以物件為中心,物件的所有行為都通過呼叫自己的函式來完成。體現在 層面就是資料成員呼叫自己的函式以及通過函式來對自己進行操作.1.可以在成員函式中做一些必要的限制 2.有時候確實不允許使用者改變資料成員 3.對資料的封裝一般用set來對函式賦值 get函式用來讀取資料成員 ...