日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

23. C# -- 封装

發(fā)布時間:2025/5/22 C# 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 23. C# -- 封装 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是封裝?

封裝就是將數(shù)據(jù)或函數(shù)等集合在一個個的單元中(我們稱之為類)。被封裝的對象通常被稱為抽象數(shù)據(jù)類型。?

使用封裝的意義?

封裝的意義在于保護或者防止代碼(數(shù)據(jù))被我們無意中破壞。

封裝提供了一個有效的途徑來保護數(shù)據(jù)不被意外的破壞。

?

下面我們看一些c#例子來學習這兩種方法用以封裝數(shù)據(jù)。第一種方法,我們使用傳統(tǒng)的存、取方法。第二種方法我們用屬性property)。無論我們使用哪種的方法,我們的目標是在使用數(shù)據(jù)的同時不能使它受到任何的破壞和改變。有如下好處:

其一: 使用者只需要了解如何通過類的接口使用類,而不用關心類的內部數(shù)據(jù)結構和數(shù)據(jù)組織方法。

其二:高內聚,低耦合一直是我們所追求的,用好封裝恰恰可以減少耦合

其三:只要對外接口不改變,可以任意修改內部實現(xiàn),這個可以很好的應對變化

其四:類具有了簡潔清晰的對外接口,降低了使用者的學習過程

?

實例一:用傳統(tǒng)的讀、寫方法封裝

讓我們來看一個例子有一個類Department,為了操縱這個類中的數(shù)據(jù)(stringdepartname)我們定義了一個讀方法和一個寫方法。

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?GetDepartname() {return?departname; }public?void?SetDepartname(string?a) { departname?=?a; } }//客戶端實現(xiàn),使用兩個不同方法來寫和讀數(shù)據(jù)public?class?TestAnimal {static?void?Main() {Department?d?=?new?Department();d.SetDepartname("ELECTRONICS");Console.WriteLine("The?departname?is?:?"?+d.GetDepartname());Console.ReadLine(); } } }

結果:

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;?} } }//客戶端實現(xiàn),使用兩個不同方法來寫和讀數(shù)據(jù)public?class?TestAnimal {static?void?Main() {Department?d?=?new?Department();d.Departname?=?"Communication";Console.WriteLine("The?departname?is?:{0}?",?d.Departname);Console.ReadLine(); } } }

通過上面的例子,我們可以看到如何通過屬性來實現(xiàn)封裝。屬性具有兩種操作getsetGet用來返回屬性域的值。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# -- 封装的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。