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是隻有子類能訪問。
特別提示
如果您還有其它疑問,可以在評論裡告訴我。如果您有急需解決的問題,可以檢視右側我的個人介紹。
您也可以點選分享,把本文分享給更多需要的人。
我的新浪微博暱稱為“段子批發商”,歡迎互粉啊。
-
怎麼快速通過新浪微博認證
新浪微博認證是身份的象徵,通過新浪微博認證後,可以增加使用者的影響力,可以享有新浪微博特殊許可權,可以迅速增加粉絲,可以匯入到新浪部落格認證。通過新浪微博認證後,使用者微博名字後面會加一個橙色的大V。很多微博好友都想通過新浪認證,怎麼快速通過新浪微博認證呢?歡迎大...
-
怎麼做手遊推廣
現在玩手遊的人越來越多,手遊市場也開闊起來,每天都會有新的遊戲出現,競爭也就顯得越發的激烈。想要佔據一定的市場,那就需要進行推廣,尋找合適的方式,加上游戲本身的質量,這樣才會別更多人所瞭解。操作方法(01)應用商店。可以尋求相關的手遊應用商店合作,把自己所要推廣...
-
華為瀏覽器怎麼設定預設搜尋引擎
我們在使用華為或者榮耀手機時,會使用手機自帶的華為瀏覽器進行網頁的瀏覽,搜尋相關的訊息等。如何更改華為手機瀏覽器預設的搜尋引擎,選擇其他的搜尋引擎,本文將詳細介紹。操作方法(01)我們開啟自己的華為或榮耀系列手機後,選擇最下方的系統自帶的“瀏覽器”進入。(02...
-
怎麼成為網易雲閱讀的作者
最近看到網易雲閱讀裡面竟然有作者選項,所以就來分享下如何成為網易雲閱讀的作者。操作方法(01)要加入網易雲閱讀,首先就是先註冊一個網易的帳號,一般推薦網易的163郵箱帳號。(02)有了網易郵箱之後,就可以登入網易雲閱讀的首頁,用郵箱登入。(03)登入網易雲閱讀之後,就點選...