Java的訪問控制

Java的訪問控制修飾符共有4個,分別是publicprotecteddefaultprivate。下面我們分別進行講解。

private訪問控制

在本章的前面,我們已經明白了private訪問控制符的作用,如果一個成員方法或成員變量名前使用了private訪問控制符,那麼這個成員只能在這個類的內部使用。

注意:不能在方法體內聲明的變量前加private修飾符。

缺省訪問控制

如果一個成員方法或成員變量名前沒有使用任何訪問控制符,我們就稱這個成員是缺省的(default),或是友元的(friendly),或是包類型的(package)。對於缺省訪問控制成員,可以被這個包中的其他類訪問,如果一個子類與父類位於不同的包中,子類也不能訪問父類中的缺省訪問控制成員。

protected訪問控制

如果一個成員方法或成員變量名前使用了protected訪問控制符,那麼這個成員即可以被同一個包中的其他類訪問,也可以被不同包中的子類訪問。

public訪問控制

如果一個成員方法或成員變量名前使用了public訪問控制符,那麼這個成員即可以被所有的類訪問,不管訪問類與被訪問類是否在同一個包中。

最後,我們用一張圖來總結上述訪問控制符的權限。

 

 

private

defalut

protected

public

同一類

同一包中的類

 

子類

 

 

其他包中的類

 

 

 

表4.1

4.6.2 類的訪問控制

除了類中的成員有訪問控制外,類本身也有訪問控制,即在定義類的class關鍵字前加上訪問控制符,但類本身只有兩種訪問控制,即public 和默認,父類不能是private和protected,否則子類無法繼承。public修飾的類能被所有的類訪問,默認修飾(即class關鍵字前沒有訪問控制符)的類,只能被同一包中的所有類訪問。

注意:

只要在class之前,沒有使用public修飾符,源文件的名稱可以是一切合法的名稱。帶有public 修飾符的類的類名必須與源文件名相同,而且只有一個。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章