面向对象三大特性: 封装
生活随笔
收集整理的這篇文章主要介紹了
面向对象三大特性: 封装
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
封裝
封裝:每個(gè)對(duì)象都包含有它能進(jìn)行操作的所有信息,這個(gè)特性稱為封裝。這樣的方法包含在類中,通過類的實(shí)例來實(shí)現(xiàn)。
e.g. 我們可以使用遙控器。 遙控器有多個(gè)功能
封裝的優(yōu)點(diǎn)
A.良好的封裝能夠減少耦合(比如實(shí)現(xiàn)界面和邏輯分離)
B.可以讓類對(duì)外接口不變,內(nèi)部可以實(shí)現(xiàn)自由的修改
C.類具有清晰的對(duì)外接口,使用者只需調(diào)用,無需關(guān)心內(nèi)部
D.因?yàn)榉庋b的類功能相對(duì)獨(dú)立,因此能更好的實(shí)現(xiàn)代碼復(fù)用
E.可保護(hù)代碼不被無意中破壞,通過私有字段等實(shí)現(xiàn)內(nèi)部。注意:這里的代碼保護(hù)不是指代碼本身的加密,而是對(duì)不想外部更改的代碼通過私有實(shí)現(xiàn)。
?
/// <summary> /// 狗狗類 /// </summary> class Dog {string _dogName;readonly Color _dogColor=Color.Yellow;readonly double _dogPrice = 800.00;int _shoutNumber;/// <summary>/// 構(gòu)造函數(shù)/// </summary>/// <param name="dogName"></param>public Dog(string dogName){DogName = dogName;}/// <summary>/// 狗狗名字 公有屬性/// </summary>public string DogName{get { return _dogName; }set { _dogName = value; }}/// <summary>/// 狗狗顏色 只讀屬性 (顏色一出生就是這個(gè)顏色,這里只提供只讀,當(dāng)然這里不考慮染色)/// </summary>public Color DogColor{ get { return _dogColor;} }/// <summary>/// 狗狗價(jià)格 只讀屬性 (這是買來的價(jià)格,歷史是不可以修改的)/// </summary>public double DogPrice{get { return _dogPrice; }}/// <summary>/// 狗叫的次數(shù) (不同的陌生人來,叫的次數(shù)不同)/// </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);} }?
封裝要點(diǎn)
1.封裝就是把一個(gè)object的所有properties和methods放在一起
2.保持統(tǒng)一的對(duì)外接口,內(nèi)部修改不影響外部調(diào)用
轉(zhuǎn)載于:https://www.cnblogs.com/TheMiao/p/9255932.html
總結(jié)
以上是生活随笔為你收集整理的面向对象三大特性: 封装的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习——深度学习之卷积神经网络(CN
- 下一篇: 开源BT磁力搜索引擎收集