23. C# -- 封装
什么是封裝?
封裝就是將數據或函數等集合在一個個的單元中(我們稱之為類)。被封裝的對象通常被稱為抽象數據類型。?
使用封裝的意義?
封裝的意義在于保護或者防止代碼(數據)被我們無意中破壞。
封裝提供了一個有效的途徑來保護數據不被意外的破壞。
?
下面我們看一些c#例子來學習這兩種方法用以封裝數據。第一種方法,我們使用傳統的存、取方法。第二種方法我們用屬性(property)。無論我們使用哪種的方法,我們的目標是在使用數據的同時不能使它受到任何的破壞和改變。有如下好處:
其一: 使用者只需要了解如何通過類的接口使用類,而不用關心類的內部數據結構和數據組織方法。
其二:高內聚,低耦合一直是我們所追求的,用好封裝恰恰可以減少耦合
其三:只要對外接口不改變,可以任意修改內部實現,這個可以很好的應對變化
其四:類具有了簡潔清晰的對外接口,降低了使用者的學習過程
?
實例一:用傳統的讀、寫方法封裝
讓我們來看一個例子有一個類Department,為了操縱這個類中的數據(stringdepartname)我們定義了一個讀方法和一個寫方法。
結果:
The departname is ELECTRONICS
?
實例二:用屬性
using?System; using?System.Collections.Generic; using?System.Linq; using?System.Text; using?System.Threading.Tasks; namespace?ConsoleApplication1 {//定義類class?Department {private?string?departname;public?string?Departname {get?{?return?departname;?}set?{?departname?=?value;?} } }//客戶端實現,使用兩個不同方法來寫和讀數據public?class?TestAnimal {static?void?Main() {Department?d?=?new?Department();d.Departname?=?"Communication";Console.WriteLine("The?departname?is?:{0}?",?d.Departname);Console.ReadLine(); } } }通過上面的例子,我們可以看到如何通過屬性來實現封裝。屬性具有兩種操作get和set。Get用來返回屬性域的值。Set通過value這個變量來給屬性域賦值。屬性可以設為只讀的(read-only)。這只需屬性只具有一個set操作。
結果:
The departname is :Communication
?
參考:
http://blog.csdn.net/acmilanvanbasten/article/details/8625097
轉載于:https://blog.51cto.com/57388/1652438
總結
以上是生活随笔為你收集整理的23. C# -- 封装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转载】linux 下 cpu使用情况分
- 下一篇: 面向对象的程序设计之原型模式