在java中,定義了三個修飾符用來控制類、類的屬性以及類的方法等的訪問範圍。通過這三個修飾符,可以定義四種程度的限制。
訪問控制修飾符的限制程度從高到底爲:private<default<protected<public
private:這是限制最嚴格的一個修飾符,使用這個關鍵字來限制的屬性或者方法,只能在同一個類中被訪問。也就是說,在這個類文件之外,這些屬性或者方法是被隱藏的。這個修飾符最常用語修飾符中的全局變量。注意,這個修飾符不能用在類的前面。
default:default不是關鍵字,只是對類,類的屬性以及類的方法的訪問權限的一種稱呼。如果在類、類的屬性和類的方法前面沒有任何的修飾符,則我們說它的訪問權限是default的。在這種情況下,只有類本省或者同一個包中的其它類可以訪問這些屬性或方法。而對於其他包中的類而言是不可訪問的。
protected:protected修飾符修飾的屬性或者方法,可以被同一個類,同一個包中的類以及繼承子類訪問。注意:這個修飾符同樣不能用於類前面。
public:這個修飾符對類、類的方法以及類的方法均可用。它的限制是最寬鬆的,使用這個修飾符修飾的類屬性、類的方法可以被任何其他的類訪問,無論這個類是否在同一個包中,以及是否是子類等。
一般來說,我們應該將和其它類無關的屬性或者方法設置爲private,只需要將它給其它類訪問的屬性或方法纔將它設置爲public或者protected,或者不加任何修飾符,讓其爲default。
修飾符 | 同一個類中 | 同一個包中 | 子類中 |
全局 |
---|---|---|---|---|
private | Yes | |||
default | Yes |
Yes |
||
protected | Yes |
Yes |
Yes |
|
public | Yes |
Yes |
Yes |
Yes |
注意:default不是java修飾符,它只是表明了一種訪問限制狀態。