Java中四種訪問(wèn)控制權(quán)限解析(private、default、protected、public)
一、java權(quán)限簡(jiǎn)介
java當(dāng)中有4種訪問(wèn)修飾限定符privat、default(默認(rèn)訪問(wèn)權(quán)限),protected以及public。只有默認(rèn)訪問(wèn)權(quán)限和public能夠用來(lái)修飾類。修飾類的變量和方法四種權(quán)限都可以。
- private:如果一個(gè)類的方法或者變量被private修飾,那么這個(gè)類的方法或者變量只能在該類本身中被訪問(wèn),在類外以及其他類中都不能顯示地進(jìn)行訪問(wèn)。
- default(默認(rèn)訪問(wèn)權(quán)限):如果一個(gè)類的方法或變量被包訪問(wèn)權(quán)限修飾,也就意味著只能在同一個(gè)包中的其他類中顯示地調(diào)用該類的方法或者變量,在不同包中的類中不能顯示地調(diào)用該類的方法或變量。
- protected:如果一個(gè)類的方法或者變量被protected修飾,對(duì)于同一個(gè)包的類,這個(gè)類的方法或變量是可以被訪問(wèn)的。對(duì)于不同包的類,只有繼承于該類的類才可以訪問(wèn)到該類的方法或者變量。
- public:被public修飾的方法或者變量,在任何地方都是可見(jiàn)的。
范圍 | private | default | protected | public | |
---|---|---|---|---|---|
1 | 同一包中的同一類 | √ | √ | √ | √ |
2 | 同一包中的不同類 | √ | √ | √ | |
3 | 不同包中的子類 | √ | √ | ||
4 | 不同包中的非子類 | √ |
二、舉例使用
1.private
在(1)中當(dāng)變量age在Person類里定義時(shí)被private修飾時(shí),在test1內(nèi)部需要引用時(shí)就會(huì)報(bào)錯(cuò)。因?yàn)閍ge超出了訪問(wèn)權(quán)限。而在圖(2)當(dāng)中在class內(nèi)部的age(this.age指在Person內(nèi)部的age)使用時(shí)可以正常使用。
2.默認(rèn)權(quán)限(default)
沒(méi)有被任何修飾符修飾的變量即是默認(rèn)訪問(wèn)權(quán)限,該變量可以在該包里的任意類里使用,
3.protected
demo中的test2繼承了demo1中的test1,而且a被protected修飾。盡管test2和test1不在同一包中,卻可以在test1中訪問(wèn)a,剛好符合protected變量的最大訪問(wèn)權(quán)限。
4.public
被public修飾的變量在任何位置都可以使用。
注意
1.四種訪問(wèn)權(quán)限范圍的大小從小到大:private<default(默認(rèn)訪問(wèn)權(quán)限)<protected<public。
2.當(dāng)定義變量時(shí)不加任何修飾會(huì)默認(rèn)為默認(rèn)權(quán)限。
3.在子類中訪問(wèn)父類中的變量時(shí)需要用super。
到此這篇關(guān)于Java中四種訪問(wèn)控制權(quán)限解析(private、default、protected、public)的文章就介紹到這了,更多相關(guān)Java訪問(wèn)控制權(quán)限內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
帶你一文深入認(rèn)識(shí)Java?String類
這篇文章主要介紹了帶你一文深入認(rèn)識(shí)Java?String類,String 類在Java中是很常用的類,很重要的類,在后續(xù)的學(xué)習(xí)中經(jīng)常會(huì)用到,是后續(xù)學(xué)習(xí)的基礎(chǔ), 文章圍繞主題展開(kāi)更多詳細(xì)內(nèi)容,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助2022-06-06Spring + mybatis + mysql使用事物的幾種方法總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于Spring + mybatis + mysql使用事物的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05深入淺析Netty 在 Dubbo 中是如何應(yīng)用的
國(guó)內(nèi)知名框架 Dubbo 底層使用的是 Netty 作為網(wǎng)絡(luò)通信,那么內(nèi)部到底是如何使用的呢?今天通過(guò)本文給大家詳細(xì)講解,對(duì)Netty 在 Dubbo中應(yīng)用相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧2020-05-05詳解Spring Boot中使用Flyway來(lái)管理數(shù)據(jù)庫(kù)版本
這篇文章主要介紹了詳解Spring Boot中使用Flyway來(lái)管理數(shù)據(jù)庫(kù)版本,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01