Java中的private、protected、public和default的區(qū)別(詳解)
(1)對(duì)于public修飾符,它具有最大的訪問(wèn)權(quán)限,可以訪問(wèn)任何一個(gè)在CLASSPATH下的類(lèi)、接口、異常等。它往往用于對(duì)外的情況,也就是對(duì)象或類(lèi)對(duì)外的一種接口的形式。
(2)對(duì)于protected修飾符,它主要的作用就是用來(lái)保護(hù)子類(lèi)的。它的含義在于子類(lèi)可以用它修飾的成員,其他的不可以,它相當(dāng)于傳遞給子類(lèi)的一種繼承的東西。
(3)對(duì)于default來(lái)說(shuō),有點(diǎn)的時(shí)候也成為friendly(友員),它是針對(duì)本包訪問(wèn)而設(shè)計(jì)的,任何處于本包下的類(lèi)、接口、異常等,都可以相互訪問(wèn),即使是父類(lèi)沒(méi)有用protected修飾的成員也可以。
(4)對(duì)于private來(lái)說(shuō),它的訪問(wèn)權(quán)限僅限于類(lèi)的內(nèi)部,是一種封裝的體現(xiàn),例如,大多數(shù)的成員變量都是修飾符為private的,它們不希望被其他任何外部的類(lèi)訪問(wèn)。
下表為Java訪問(wèn)控制符的含義和使用情況
類(lèi)內(nèi)部 | 本包 | 子類(lèi) | 外部包 | |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
注意:Java的訪問(wèn)控制是停留在編譯層的,也就是它不會(huì)在.class文件中留下任何的痕跡,只在編譯的時(shí)候進(jìn)行訪問(wèn)控制的檢查。其實(shí),通過(guò)反射的手段,是可以訪問(wèn)任何包下任何類(lèi)中的成員,例如,訪問(wèn)類(lèi)的私有成員也是可能的。
區(qū)別:
(1)public:可以被所有其他類(lèi)所訪問(wèn)。
(2)private:只能被自己訪問(wèn)和修改。
(3)protected:自身,子類(lèi)及同一個(gè)包中類(lèi)可以訪問(wèn)。
(4)default(默認(rèn)):同一包中的類(lèi)可以訪問(wèn),聲明時(shí)沒(méi)有加修飾符,認(rèn)為是friendly。
以上就是小編為大家?guī)?lái)的Java中的private、protected、public和default的區(qū)別(詳解)全部?jī)?nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
Spring Boot實(shí)現(xiàn)郵件發(fā)送必會(huì)的5種姿勢(shì)
這篇文章主要給大家介紹了關(guān)于Spring Boot實(shí)現(xiàn)郵件發(fā)送必會(huì)的5種姿勢(shì),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Java實(shí)現(xiàn)多線程大批量同步數(shù)據(jù)(分頁(yè))
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)多線程大批量同步數(shù)據(jù)(分頁(yè)),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08Java連接數(shù)據(jù)庫(kù)oracle中文亂碼解決方案
這篇文章主要介紹了Java連接數(shù)據(jù)庫(kù)oracle中文亂碼解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05詳解用maven搭建springboot環(huán)境的方法
本篇文章主要介紹了詳解用maven搭建springboot環(huán)境的方法,這里整理了詳細(xì)的代碼,非常具有實(shí)用價(jià)值,有需要的小伙伴可以參考下2017-08-08解決sharding JDBC 不支持批量導(dǎo)入問(wèn)題
這篇文章主要介紹了解決sharding JDBC 不支持批量導(dǎo)入問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10Java中的HashMap為什么會(huì)產(chǎn)生死循環(huán)
這篇文章主要介紹了Java中的HashMap為什么會(huì)產(chǎn)生死循環(huán),HashMap?死循環(huán)是一個(gè)比較常見(jiàn)、比較經(jīng)典的問(wèn)題,下面文章我們就來(lái)徹底理解死循環(huán)的原因。需要的小伙伴可以參考一下2022-05-05