天天看點

java中public private_java中public、private、protected差別

類中的資料成員和成員函資料具有的通路權限包括:public、private、protect、friendly(包通路權限)

1、public:public表明該資料成員、成員函數是對所有使用者開放的,所有使用者都可以直接進行調用2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财産神聖不可侵犯嘛,即便是子女,朋友,都不可以使用。3、protected:protected對于子女、朋友來說,就是public的,可以自由使用,沒有任何限制,而對于其他的外部class,protected就變成private。

作用域 目前類 同一package 子孫類 其他package

public       √          √           √            √

protected √         √            √            ×

friendly     √         √            ×            ×

private     √         ×            ×             ×

不寫時預設為friendly ,也即是“包通路權限”。

protected權限:

往往在初學Java的時候,都不會提通路權限和修飾符的問題,在Java的學習中一般都要到包的概念學完才會涉及通路控制:

priavte          本類可見

public            所有類可見

protected      本包和所有子類都可見(本包中的子類非子類均可通路,不同包中的子類可以通路,不是子類不能通路)

friendly          本包可見(即預設的形式)(本包中的子類非子類均可通路,不同包中的類及子類均不能通路)

類的通路權限包括: 包通路權限和public。

1.私有權限 private

private可以修飾資料成員,構造方法,方法成員,不能修飾類(此處指外部 類,不考慮内部類)。被private修飾的成員,隻能在定義它們的類中使用,在 其他類中不能調用。

2.預設權限 (default)

類,資料成員,構造方法,方法成員,都能夠使用預設權限,即不寫任何關 鍵字。預設權限即同包權限,同包權限的元素隻能在定義它們的類中,以及同包 的類中被調用。

3.受保護權限protected

protected可以修飾資料成員,構造方法,方法成員,不能修飾類(此處指外 部類,不考慮内部類)。被protected修飾的成員,能在定義它們的類中,同包 的類中被調用。如果有不同包的類想調用它們,那麼這個類必須是定義它們的類 的子類。

4.公共權限 public

public可以修飾類,資料成員,構造方法,方法成員。被public修飾的成員 ,可以在任何一個類中被調用,不管同包或不同包,是權限最大的一個修飾符。

有關Java語言的修飾符,需要注意的問題有如下幾個:

1.并不是每個修飾符都可以修飾類(指外部類),隻有public和default可 以。

2.所有修飾符都可以修飾資料成員,方法成員,構造方法。

3.為了代碼安全起見,修飾符不要盡量使用權限大的,而是适用即可。比如 ,資料成員,如果沒有特殊需要,盡可能用private。

4.修飾符修飾的是“被通路”的權限。