1. 程式人生 > >面向對象三大特性: 封裝

面向對象三大特性: 封裝

界面 內部 我們 summary 特性 .sh 不同 更改 要點

封裝

封裝:每個對象都包含有它能進行操作的所有信息,這個特性稱為封裝。這樣的方法包含在類中,通過類的實例來實現。

e.g. 我們可以使用遙控器。 遙控器有多個功能

封裝的優點

A.良好的封裝能夠減少耦合(比如實現界面和邏輯分離)

B.可以讓類對外接口不變,內部可以實現自由的修改

C.類具有清晰的對外接口,使用者只需調用,無需關心內部

D.因為封裝的類功能相對獨立,因此能更好的實現代碼復用

E.可保護代碼不被無意中破壞,通過私有字段等實現內部。註意:這裏的代碼保護不是指代碼本身的加密,而是對不想外部更改的代碼通過私有實現。

/// <summary>
/// 狗狗類
/// </summary>
class Dog { string _dogName; readonly Color _dogColor=Color.Yellow; readonly double _dogPrice = 800.00; int _shoutNumber; /// <summary> /// 構造函數 /// </summary> /// <param name="dogName"></param> public Dog(string dogName) { DogName = dogName; }
/// <summary> /// 狗狗名字 公有屬性 /// </summary> public string DogName { get { return _dogName; } set { _dogName = value; } } /// <summary> /// 狗狗顏色 只讀屬性 (顏色一出生就是這個顏色,這裏只提供只讀,當然這裏不考慮染色) /// </summary> public Color DogColor { get { return
_dogColor;} } /// <summary> /// 狗狗價格 只讀屬性 (這是買來的價格,歷史是不可以修改的) /// </summary> public double DogPrice { get { return _dogPrice; } } /// <summary> /// 狗叫的次數 (不同的陌生人來,叫的次數不同) /// </summary> public int ShoutNumber{ set{_shoutNumber=value;} get { return _shoutNumber; } } /// <summary> /// 狗叫的方法 /// </summary> public void Shout() { int i=0; string ShoutNum=""; do { ShoutNum += "旺!"; i++; } while (i <= ShoutNumber); MessageBox.Show(ShoutNum); } }

封裝要點

1.封裝就是把一個object的所有properties和methods放在一起

2.保持統一的對外接口,內部修改不影響外部調用

面向對象三大特性: 封裝