Java的訪問控制

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

private訪問控制spa

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

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

缺省訪問控制it

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

protected訪問控制ast

若是一個成員方法或成員變量名前使用了protected訪問控制符,那麼這個成員便可以被同一個包中的其餘類訪問,也能夠被不一樣包中的子類訪問。class

public訪問控制變量

若是一個成員方法或成員變量名前使用了public訪問控制符,那麼這個成員便可以被全部的類訪問,無論訪問類與被訪問類是否在同一個包中。權限

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

 

 

private

defalut

protected

public

同一類

同一包中的類

 

子類

 

 

其餘包中的類

 

 

 

表4.1

4.6.2 類的訪問控制

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

注意:

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

相關文章
相關標籤/搜索