【java編程思想--學習筆記(二)】訪問控制-Java訪問權限修飾詞

如果不提供任何訪問修飾詞,則意味着它是“包訪問權限”。
2.1 包訪問權限
包訪問權限賦予包內的類相互訪問彼此成員的權限。
應該說, 包訪問權限爲將類羣聚在一起的行爲提供了意義和理由,即建立包的目的不僅僅是爲了分類和區分,更是爲了是同一個包內的類可以擁有彼此的代碼。
取得對某一成員訪問權的途徑:
1)該成員的訪問修飾詞爲public。
2)通過不加訪問權限修飾詞並將目標類放在同一包內的方式。
3)繼承。子類可以訪問父類的public和protected修飾詞的成員,但只有在父子類處於同一包內時,纔可以訪問包訪問權限的成員。
4)Setter 和 Getter。
2.2 public:接口訪問權限
public成員聲明自己對每個類都是可用的。
注意·:當兩個何不關聯但都爲聲明package時,Java視爲兩個類都隸屬於默認包之中,因此可以相互訪問。
所以說,Java強制性的合理組織所有的執行單元。
2.3 private:你無法訪問
private成員無法被任何非該成員的類的其他類訪問。
由於包訪問權限不能被客戶端程序員訪問,因此如下考慮爲成員設置權限:
1)想要明確公開給客戶端程序員使用的成員使用public關鍵詞。
2)只想要自己操作而不希望其他人使用或影響其他操作時使用private關鍵詞。
3)忘記添加任何訪問權限控制時能夠自動得到的權限。
實例代碼:

Class Do {
    private Do () {}
    static Do makeDo() {
        return new Do();
    }
}

public class Use {
    public static void main(String[] args) {
        Do do = makeDo();   
    }
}

使用private的目的:
1)控制如何創建對象,並阻止別人直接使用構造器創建非法的對象。
2)唯一的構造器是private的,將阻礙其他類對此類的繼承。
2.4 protected:繼承訪問權限
針對繼承發明的權限修飾詞。
只有同包內的類和子類纔可以訪問protected修飾的成員。

發佈了61 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章