java编程思想学习(3):Java中的private、protected、public和default的区别
(1)對(duì)于public修飾符,它具有最大的訪問(wèn)權(quán)限,可以訪問(wèn)任何一個(gè)在CLASSPATH下的類、接口、異常等。它往往用于對(duì)外的情況,也就是對(duì)象或類對(duì)外的一種接口的形式。
(2)對(duì)于protected修飾符,它主要的作用就是用來(lái)保護(hù)子類的。它的含義在于子類可以用它修飾的成員,其他的不可以,它相當(dāng)于傳遞給子類的一種繼承的東西。
(3)對(duì)于default來(lái)說(shuō),有點(diǎn)的時(shí)候也成為friendly(友員),它是針對(duì)本包訪問(wèn)而設(shè)計(jì)的,任何處于本包下的類、接口、異常等,都可以相互訪問(wèn),即使是父類沒(méi)有用protected修飾的成員也可以。
(4)對(duì)于private來(lái)說(shuō),它的訪問(wèn)權(quán)限僅限于類的內(nèi)部,是一種封裝的體現(xiàn),例如,大多數(shù)的成員變量都是修飾符為private的,它們不希望被其他任何外部的類訪問(wèn)。
下表為Java訪問(wèn)控制符的含義和使用情況
注意:Java的訪問(wèn)控制是停留在編譯層的,也就是它不會(huì)在.class文件中留下任何的痕跡,只在編譯的時(shí)候進(jìn)行訪問(wèn)控制的檢查。其實(shí),通過(guò)反射的手段,是可以訪問(wèn)任何包下任何類中的成員,例如,訪問(wèn)類的私有成員也是可能的。
區(qū)別:
(1)public:可以被所有其他類所訪問(wèn)。
(2)private:只能被自己訪問(wèn)和修改。
(3)protected:自身,子類及同一個(gè)包中類可以訪問(wèn)。
(4)default(默認(rèn)):同一包中的類可以訪問(wèn),聲明時(shí)沒(méi)有加修飾符,認(rèn)為是friendly。
?
Modifier?????????????????Class????Package????Subclass????World
public?????????????????????1?????????1???????????1??????????1
protected??????????????????1?????????1???????????1??????????0
no modifier????????????????1?????????1???????????0??????????0
private????????????????????1?????????0???????????0??????????0
不寫時(shí)默認(rèn)為friendly
1、public:public表明該數(shù)據(jù)成員、成員函數(shù)是對(duì)所有用戶開(kāi)放的,所有用戶都可以直接進(jìn)行調(diào)用
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有財(cái)產(chǎn)神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
3、protected:protected對(duì)于子女、朋友來(lái)說(shuō),就是public的,可以自由使用,沒(méi)有任何限制,而對(duì)于其他的外部class,protected就變成private。
作用域?當(dāng)前類?同一package?子孫類?其他package?
public?????? √?√?√?√?
protected?√?√?√?×?
friendly???? √?√?×?×?
private???? √?×?×?×?
總結(jié)
以上是生活随笔為你收集整理的java编程思想学习(3):Java中的private、protected、public和default的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 财务软件开发_财务独立对软件开发人员的重
- 下一篇: 第一百二十九期:阿里内部员工,排查Jav