由前面的例子我們可以理解為什麼要封裝,那麼我們如何來封裝呢?
private關鍵字的作用是將類中的成員(成員變數和函式)私有化,使其只可以在本類中才可以使用。
既然私有化了類中的成員,那麼我們保證了**的安全性的同時如何來自己使用這些成員呢?
如果我們想要使用私有化的成員變數和成員函式時,我們需要get、set方法來對其訪問,具體的格式為:
class
student
public
void
setname
(string n)
public string getname()
public
void
setage
(int a)
public
intgetage()
}
這裡注意的是set方法中沒有返回值,而get方法中需要返回值。此時我們可以用set方法給name和age賦值,用get方法進行獲取輸出:
public
static
void
main
(string[
] args)
輸出結果為:我的名字:曹賊 我的年齡:20
但是我們發現即使用set、get的方法封裝**,但是在輸入setage()的方法時仍然可以將年齡輸入為負值,這顯然不符合現實。
我們知道現在的成員變數不是直接的呼叫,而是用方法來呼叫,所以我們可以在方法中進行判斷,從而使輸入的結果是符合現實道理的:
public
intgetage()
else
}}
這裡我們判斷如果輸入的年齡小於0或者大於110,那麼我們預設輸入的年齡為1歲:
stu.
setname
("曹賊");
stu.
setage(-
3);
輸出結果為:我的名字:曹賊 我的年齡:1
並不是所有的封裝對成員變數的獲取都是set、gei方法,當成員變數是boolean型別的時候,我們需要is***()方法對其進行獲取。
解析Swift語言面相物件程式設計中的繼承特性
取大於形態的能力被定義為繼承。一般乙個類可以從另乙個類繼承屬性和方法。類可以進一步劃分到子類和超類。子類 當乙個類從另乙個類繼承屬性,方法和功能被稱為子類 超類 類包含屬性,方法和功能被其它類繼承稱為超類 swift 中類包含父類和呼叫訪問方法,屬性,功能和重寫方法。另外,屬性觀察者也用於新增屬性和...
python物件導向(二)之封裝
在程式設計中,封裝 encapsulation 是對具體物件的一種抽象,即將某些部分隱藏起來,在程式外部看不到,其含義是其他程式無法呼叫。即 封裝 就是將抽象得到的資料和行為 或功能 相結合,形成乙個有機的整體 即類 封裝的目的是增強安全性和簡化程式設計,使用者不必了解具體的實現細節,而只是要通過外...
物件導向中 封裝的理解
封裝是保證軟體部件具有優良的模組性的基礎,封裝的目標就是要實現軟體部件的 高內聚 低耦合 防止程式相互依賴性而帶來的變動影響。在物件導向的程式語言中,物件是封裝 的最基本單位,物件導向的封裝比傳統語言的封裝更為清晰 更為有力。物件導向的封裝就 是把描述乙個物件的屬性和行為的 封裝在乙個 模組 中,也...