Java提供了3個訪問控制符:private、protected和public,分別代表了3個訪問控制級別,另外還有一個不加任何訪問控制符的訪問控制級別,提供了4個訪問控制級別。Java的訪問控制級別由小到大如圖所示: 圖中4個訪問控制級別中的default並沒有對應訪問控制符,當不使...
Java提供了3個訪問控制符:private、protected和public,分別代表了3個訪問控制級別,另外還有一個不加任何訪問控制符的訪問控制級別,提供了4個訪問控制級別。Java的訪問控制級別由小到大如圖所示:
圖中4個訪問控制級別中的default並沒有對應訪問控制符,當不使用任何訪問控制符來修飾類或類成員時,系統預設使用該訪問控制級別。這4個訪問控制級別的詳細介紹如下。
- private(當前類訪問許可權):如果類里的一個成員(包括成員變數、方法和構造器等)使用private訪問控制符來修飾,則這個成員只能在當前類的內部被訪問。很顯然,這個訪問控制符用於修飾成員變數最合適,使用它來修飾成員變數就可以把成員變數隱藏在該類的內部。
- default(包(package)訪問許可權):如果類里的一個成員(包括成員變數、方法和構造器等)或者一個外部類不使用任何訪問控制修飾,就稱它為包訪問許可權的,default訪問控制的成員或外部類可以被相同包下的其他類訪問。
- protected(子類訪問許可權):如果一個成員(包括成員變數、方法和構造器等)使用protected訪問控制符修飾,那麼這個成員既可以被同一個包中的其他類訪問,也可以被不同包中的子類訪問。在通常情況下,如果使用protected來修飾一個方法,通常是希望其子類來重寫這個方法。
- public(公共訪問許可權):這是一個最寬鬆的訪問控制級別,如果一個成員(包括成員變數、方法和構造器等)或者一個外部類使用public訪問控制符修飾,那麼這個成員或外部類就可以被所有類訪問,不管訪問類和被訪問類是否處於同一個包中,是否具有父子繼承關係。