上篇文章中,提到了Java類需要打包,打包後可以進行存取權限控制。本文 中,將對Java語言中的存取權限修飾符,進行簡單介紹。
一個Java應用有很多類,但是有些類,並不希望被其他類使用。每個類中都 有資料成員和方法成員,但是並不是每個資料和方法,都允許在其他類中調用。 如何能做到存取控制呢?就需要使用存取權限修飾符。
Java語言中的存取權限修飾符有4種,但是僅有3個關鍵字,因為不寫訪問權 限,在Java中被稱為預設許可權,或同包許可權,本文中以(default)代替。下面 按照許可權從小到大的順序對4中存取權限分別介紹。
1.私人許可權 private
private可以修飾資料成員,構造方法,方法成員,不能修飾類(此處指外部 類,不考慮內部類)。被private修飾的成員,只能在定義它們的類中使用,在 其他類中不能調用。
2.預設許可權 (default)
類,資料成員,構造方法,方法成員,都能夠使用預設許可權,即不寫任何關 鍵字。預設許可權即同包許可權,同包許可權的元素只能在定義它們的類中,以及同包 的類中被調用。
3.受保護許可權protected
protected可以修飾資料成員,構造方法,方法成員,不能修飾類(此處指外 部類,不考慮內部類)。被protected修飾的成員,能在定義它們的類中,同包 的類中被調用。如果有不同包的類想調用它們,那麼這個類必須是定義它們的類 的子類。
4.公用許可權 public
public可以修飾類,資料成員,構造方法,方法成員。被public修飾的成員 ,可以在任何一個類中被調用,不管同包或不同包,是許可權最大的一個修飾符。
有關Java語言的修飾符,需要注意的問題有如下幾個:
1.並不是每個修飾符都可以修飾類(指外部類),只有public和default可 以。
2.所有修飾符都可以修飾資料成員,方法成員,構造方法。
3.為了代碼安全起見,修飾符不要盡量使用許可權大的,而是適用即可。比如 ,資料成員,如果沒有特殊需要,儘可能用private。
4.修飾符修飾的是“被訪問”的許可權。