public private protected和默認的區別
Java中對類以及類中的成員變量和成員方法透過訪問控制符(access specifier)進行區分控制。剛學Java語言的同學可能對public private protected以及默認(一般稱包訪問權限)的區別不是很清楚,尤其是protected和默認的區別。本篇就來說說這個事兒。
操作方法
(01)private這個大家都知道,就是隻有在本類中才能訪問。
(02)public正好和private相反,在任何地方都能訪問。
(03)protected是在本包內能訪問,而在包外只有它的子類能訪問。如圖,package1這個包中有一個A類,它有一個成員變量a,用protected訪問控制符進行修飾。
(04)如圖,在本包中另一個類繼承自A,它是可以訪問A的這個成員變量的。如果是本包中的一個普通類(也就是不繼承自A),也是可以訪問A的成員變量的,這個大家可以自行測試。
(05)如圖,在別的包中的一個普通類訪問A的成員變量,這個是不可以的。
(06)但是在別的包中的子類,也就是繼承自A的類,訪問A的成員變量是可以的。
(07)再來說默認(包訪問權限)。如圖,還是package1中的A類的成員變量a,這一次什麼也不加。
(08)和protected一樣,只要是同一個包下的類,不管是子類還是其它普通的類,都可以訪問A的這個成員變量。
(09)在另一個包中的類,如果是普通類,和protected一樣,是不能訪問A類中的這個成員變量的。
(10)在另一個包中的類,即使是子類,也是不能訪問A類中的這個成員變量的。這一點和protected不一樣。
(11)總結一下,private是隻有本類中才能訪問,public是都能訪問,默認(包訪問權限)是隻有本包內才能訪問,包括本包內的子類和普通類,而protected是隻要本包內就能訪問,包括本包內的子類和普通類,另外別的包內的子類也能訪問,但是普通類不能訪問。所以說protected和默認(包訪問權限)是很相似的,在同一個包內,它們是一樣的,而在另一個包內,默認是不能訪問的,而protected是隻有子類能訪問。
特別提示
如果您還有其它疑問,可以在評論裏告訴我。如果您有急需解決的問題,可以檢視右側我的個人介紹。
您也可以點擊分享,把本文分享給更多需要的人。
我的新浪微博暱稱爲“段子批發商”,歡迎互粉啊。
-
怎麼在qq空間製作騰訊認證圖標
在自己的空間添加騰訊認證圖標,圖標無法下載的找我拿QQ704396659操作方法(01)1.先下載【騰訊認證標識】:單擊右鍵,複製圖片就可以。。。(02)2.上傳空間:點擊“設定”(圖中標註的地方),再選擇“修改資料”,再選擇“空間資料”(在左下方)。接下來,讓空間名稱的前面留一個空格,用Q...
-
教大家如何快速下載QQ羣,超大羣檔案?
一般在QQ羣裏邊下載檔案比較慢且容易出錯,給大家講一種簡單快速下載QQ羣的,檔案。速度快且檔案不出錯。操作方法(01)登入QQ號,開啟QQ羣。一般我們都是用這種方法下載。直接在QQ羣裏邊下,這種方法慢且檔案容易出錯。(02)現說一下快速下載QQ羣,超大羣檔案,先搜一下QQ羣空間...
-
解決TeamViewer無法按給定網絡地址聯繫夥伴
在使用TeamViewer遠程控制電腦的時候,突然出現下圖提示無法建立連接,無法按給定網絡地址聯繫夥伴。然後不管怎麼試,都彈出這個連接地址。下面是本人親身經歷和排除方法,僅供參考。操作方法(01)首先第一步就是修復一下網絡連接,開啟網絡和共享中心。(02)選擇自己使用的上...
-
怎樣解決網頁打不開問題?
電腦正常使用情況下,有的網站忽然就打不開了,IE假吊死(其他網站瀏覽正常),可能還會自動關閉所有IE任務。步驟/方法(01)執行殺毒軟件,檢查任務管理器內存佔用和程序執行情況,排除病毒因素。(02)IE工具欄裏開啟Internet選項,鼠標點擊“刪除檔案”將Internet臨時檔案刪除。(03)...