在學習結構體和方法的時候,都有提到訪問修飾符的內容。那么訪問修飾符是用來干什么的?訪問修飾符又和面向對象三大特性之一的封裝有什么關系?
一、訪問修飾符
1、定義
首先來看一下官方上對于訪問修飾符的定義:
所有類型和類型成員都具有可訪問型級別。該級別可以控制是否可以從你的程序集或其他程序集中的其他代碼中使用它們。
說白了,訪問修飾符相當于是權限。
例如在公司里,你能做的,上級都能做;上級能做的,你不一定可以做。你可以摸魚,上級也可以摸魚;上級可以發(fā)工資,你卻只能領工資。
放在編程里也是一樣的,訪問修飾符決定哪些代碼你可以隨意使用,而哪些是不允許你使用的。
2、權限
C# 中的訪問修飾符一共有五個,分別是 public
、private
、protected
、internal
、private protect
以及 protected internal
。
它們各自的權限如下表:
由上可見,public
相當于就是公共權限,在哪里都可以使用;private
相當于是私人權限,有些秘密還是自己知道就好...
二、封裝
眾所周知,面向對象編程語言有三大特性,分別是封裝、繼承和多態(tài)。
(1)定義
把一個或多個項目封閉在一個屋里或者邏輯的包中。
在面向對象程序設計方法論中,封裝是為了防止對實現(xiàn)細節(jié)的訪問。
封裝也就是我們將寫好的、相關聯(lián)的程序代碼裝到一個類中,隱藏了對象中的屬性和實現(xiàn)細節(jié)。當要使用其中的某個功能,只需要調用該類即可以。
(2)封裝和訪問修飾符
那么封裝和訪問修飾符之間又有什么關聯(lián)呢?
上面說到封裝就是把相關完整的代碼放在一塊,只要關聯(lián)類的調用,就離不開要討論訪問修飾符。
例如,我們封裝好了一個類,類中有些變量或者方法允許所有人都可以使用,就可以使用 public
來修飾變量和方法;但是有些內容,我希望是在這個類中才能使用,其他人無權使用,那么就可以使用 private
來修飾變量和方法。
因此,需要根據所要使用對象來指定訪問修飾符,這也是封裝中很重要的一點。
(3)優(yōu)點
- 提高數據的安全性 - 調用者不能修改某個私有的成員屬性,確保了私有屬性的數據安全。
- 提高代碼可重用性 - 將一系列相關代碼封裝起來,調用者想要實現(xiàn)其中功能,只要知道調用方法來使用即可。便于可重復使用,減少了大量代碼的產生。
- 隱藏具體實現(xiàn) - 調用者只需要知道調用方法,而不需要直到具體的實現(xiàn)過程。
三、總結
本篇文章簡單地記錄了關于訪問修飾符以及面向對象封裝的一些基本概念。
接下來將學習關于面向對象的繼承和多態(tài)的內容。