黑馬程式設計師blog...
物件導向三大特徵:
1. 封裝
2. 繼承
3 多型。
今天我們先學習第一大特徵,封裝。
封裝:是指隱藏物件的屬性和實現細節,僅對外提供公共訪問方式。
好處:1. 將變化隔離。
2. 便於使用。
3. 提高復用性。
4. 提高安全性。
封裝原則:
1. 將不需要對外提供的內容都隱藏起來。
2. 把屬性都隱藏,提供公共方法對其訪問。如,get***,set***。
許可權修飾符:許可權修飾符就是控制變數可見範圍的。
public : 公共的。 public修飾的成員變數或者方法任何人都可以直接訪問。
private : 私有的, private修飾的成員變數或者方法只能在本類中進行直接訪問。
封裝的步驟:
1. 使用private修飾需要被封裝的屬性。
2. 提供乙個公共的方法設定或者獲取該私有的成員屬性。
命名規範:
set屬性名();
get屬性名();
疑問: 封裝一定要提供get或者set方法嗎?
不一定, 根據需求而定的。
規範 : 在現實開發中一般實體類的所有成員屬性(成員變數)都要封裝起來。
實體類:實體類就是用於描述一類 事物的就稱作為實體類。
封裝的解釋;為了避免對資料域的直接修改,應該使用private修飾符將資料域宣告為私有的。這就稱為資料域封裝(data field encapsulation)
在定義私有資料域的類外的物件是不能訪問者個資料域的。但是經常會有客戶端需要訪問、修改資料域的情況。為了能訪問私有資料域,可以提供乙個get方法返回資料域的值。為了能夠更新乙個資料域,可以提供乙個set方法給資料設定新值。
所以封裝把乙個物件的屬性私有化,同時提供一些可以被外界訪問的屬性的方法,如果不想被外界方法,我們大可不必提供方法給外界訪問。但是如果乙個類沒有提供給外界訪問的方法,那麼這個類也沒有什麼意義了。比如我們將乙個房子看做是乙個物件,裡面的漂亮的裝飾,如沙發、電視劇集、空調、茶桌等等都是該房子的私有屬性,但是如果我們沒有那些牆遮擋,是不是別人就會一覽無餘呢?沒有一點兒隱私!就是存在那個遮擋的牆,我們既能夠有自己的隱私而且我們可以隨意的更改裡面的擺設而不會影響到其他的。但是如果沒有門窗,乙個包裹的嚴嚴實實的黑盒子,又有什麼存在的意義呢?所以通過門窗別人也能夠看到裡面的風景。所以說門窗就是房子物件留給外界訪問的介面。
如果還沒有弄懂的同學下面來看個例子;
class personelse
} //定義乙個公共的方法獲取***屬性
public string get***()
//聊天的功能
public void talk()
}class demo5
}
3 11 封裝集合
封裝集合 範例 1 include 2 define max student count 2034 class student512 13int getid const 1417 void setid int nid 1821 qstring getname const 2225 void setn...
203 07 05 封裝 繼承 多型
繼承 1 oc是單一繼承 2 封裝 隱藏內部 m檔案 實現 穩定外部 h檔案 介面。屬性封裝了例項變數 方法封裝了具體實現 類封裝了方法和屬性 封裝的好處 使用更加簡單,變數更加安全,可以隱藏內部實現細節,開發速度快 3 私有變數 private,私有方法 在.m中實現,在.h中沒有宣告,私有成員變...
OC語言5 封裝
物件導向的三大特性 封裝 成員變數 繼承和多型 在oc語言中,使用 inte ce和 implementation來處理類。inte ce就好像暴露在外面的時鐘表面,像外界提供展示以及介面。implementation就好像隱藏在時鐘內部的構造實現,把具體的實現封裝了起來。在開發過程中,考慮到安全性...