Java中四種訪問控制權(quán)限解析(private、default、protected、public)
一、java權(quán)限簡介
java當(dāng)中有4種訪問修飾限定符privat、default(默認(rèn)訪問權(quán)限),protected以及public。只有默認(rèn)訪問權(quán)限和public能夠用來修飾類。修飾類的變量和方法四種權(quán)限都可以。
- private:如果一個類的方法或者變量被private修飾,那么這個類的方法或者變量只能在該類本身中被訪問,在類外以及其他類中都不能顯示地進(jìn)行訪問。
- default(默認(rèn)訪問權(quán)限):如果一個類的方法或變量被包訪問權(quán)限修飾,也就意味著只能在同一個包中的其他類中顯示地調(diào)用該類的方法或者變量,在不同包中的類中不能顯示地調(diào)用該類的方法或變量。
- protected:如果一個類的方法或者變量被protected修飾,對于同一個包的類,這個類的方法或變量是可以被訪問的。對于不同包的類,只有繼承于該類的類才可以訪問到該類的方法或者變量。
- public:被public修飾的方法或者變量,在任何地方都是可見的。
| 范圍 | private | default | protected | public | |
|---|---|---|---|---|---|
| 1 | 同一包中的同一類 | √ | √ | √ | √ |
| 2 | 同一包中的不同類 | √ | √ | √ | |
| 3 | 不同包中的子類 | √ | √ | ||
| 4 | 不同包中的非子類 | √ |
二、舉例使用
1.private

在(1)中當(dāng)變量age在Person類里定義時被private修飾時,在test1內(nèi)部需要引用時就會報錯。因?yàn)閍ge超出了訪問權(quán)限。而在圖(2)當(dāng)中在class內(nèi)部的age(this.age指在Person內(nèi)部的age)使用時可以正常使用。
2.默認(rèn)權(quán)限(default)

沒有被任何修飾符修飾的變量即是默認(rèn)訪問權(quán)限,該變量可以在該包里的任意類里使用,
3.protected

demo中的test2繼承了demo1中的test1,而且a被protected修飾。盡管test2和test1不在同一包中,卻可以在test1中訪問a,剛好符合protected變量的最大訪問權(quán)限。
4.public
被public修飾的變量在任何位置都可以使用。
注意
1.四種訪問權(quán)限范圍的大小從小到大:private<default(默認(rèn)訪問權(quán)限)<protected<public。
2.當(dāng)定義變量時不加任何修飾會默認(rèn)為默認(rèn)權(quán)限。
3.在子類中訪問父類中的變量時需要用super。
到此這篇關(guān)于Java中四種訪問控制權(quán)限解析(private、default、protected、public)的文章就介紹到這了,更多相關(guān)Java訪問控制權(quán)限內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring + mybatis + mysql使用事物的幾種方法總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于Spring + mybatis + mysql使用事物的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05
深入淺析Netty 在 Dubbo 中是如何應(yīng)用的
國內(nèi)知名框架 Dubbo 底層使用的是 Netty 作為網(wǎng)絡(luò)通信,那么內(nèi)部到底是如何使用的呢?今天通過本文給大家詳細(xì)講解,對Netty 在 Dubbo中應(yīng)用相關(guān)知識感興趣的朋友跟隨小編一起看看吧2020-05-05
詳解Spring Boot中使用Flyway來管理數(shù)據(jù)庫版本
這篇文章主要介紹了詳解Spring Boot中使用Flyway來管理數(shù)據(jù)庫版本,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01

