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