(转)Java中的private、protected、public和default的区别
生活随笔
收集整理的這篇文章主要介紹了
(转)Java中的private、protected、public和default的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
?1 訪問修飾符
1.1 理解
默認什么都不加,就是default(不用把default寫出來)。意思就是只能由跟這個類在同一個包中的類來訪問,比private限制更少,但比protected限制更多。'
Java訪問修飾符包括private,default,protected和public。含義分別表示私有的,默認的,受保護的和公有的訪問修飾符。這些訪問修飾符既可以修飾類中的屬性,又可以修飾類中的方法,而public和default還可以修飾類。在同一個java文件里,公有類有且僅有一個,并且該文件命名為類名.java。
Java訪問修飾符就是確定類中屬性或方法的訪問權限,換句話說,就是這些屬性和方法所起的作用范圍。
private,私有的訪問權限,也是最嚴格的訪問權限,僅只能在設置了該權限的類中訪問,利用這個訪問權限,表現出封裝思想。
default,默認的訪問權限,也是可以省略的訪問權限,它不僅能在設置了該權限的類中訪問,也可以在同一包中的類或子類中訪問。
protected,受保護的訪問權限,它除了具有default的訪問權限外,還可以在不同包中所繼承的子類訪問。
public,公有的訪問權限,也是最寬松的訪問權限,不僅可以是同一個類或子類,還是同一個包中的類或子類,又還是不同包中的類或子類,都可以訪問。
要想更深入地理解這些訪問權限,一方面需要明白各自的作用域,另一方面更是要弄清楚各自所體現出來的編程思想,比方說,prvite表現的封裝思想,public表現的面向接口編程的思想等。
在面向對象設計和編程的過程中,歸根結底就是類的設計。而要設計出不僅滿足當前需求同時也能符合未來需求的類,就很有必要對類中屬性和行為設置合適的訪問
權限。那些應該為私有的,那些又應該為公有的,還有那些又應該為受保護的等,都應該給予合理的規劃和布局,一來保證程序的功能要求,二來要體現程序的擴展
性能,三來要呈現程序友好性質。總之,程序應該更好地服務用戶。而訪問權限在這樣宏偉目標里扮演著重要角色。
?
1.2 理解
下表為Java訪問控制符的含義和使用情況
| ?類內部 | ?本包 | ?子類 | 外部包? | |
| public? | ?√ | ?√ | ?√ | ?√ |
| protected | ?√ | ?√ | ?√ | ?× |
| default? | ?√ | ?√ | ?× | ?× |
| ?private | ?√ | ?× | ?× | ?× |
?
?
不寫時默認為friendly?
?注意:Java的訪問控制是停留在編譯層的,也就是它不會在.class文件中留下任何的痕跡,只在編譯的時候進行訪問控制的檢查。其實,通過反射的手段,是可以訪問任何包下任何類中的成員,例如,訪問類的私有成員也是可能的。
區別:
(1)public:可以被所有其他類所訪問。
(2)private:只能被自己訪問和修改。
(3)protected:自身,子類及同一個包中類可以訪問。
(4)default(默認):同一包中的類可以訪問,聲明時沒有加修飾符,認為是friendly。
?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的(转)Java中的private、protected、public和default的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ActiveMQ 部署及发送接收消息
- 下一篇: linux下的加密解密学习