在說明這四個關鍵字以前,我想就class之間的關係作一個簡單的定義,對於繼承本身的class,base class能夠認爲他們都是本身的子女,而對於和本身一個目錄下的classes,認爲都是本身的朋友。 安全
1、public:public代表該數據成員、成員函數是對全部用戶開放的,全部用戶均可以直接進行調用
2、private:private表示私有,私有的意思就是除了class本身以外,任何人都不能夠直接使用,私有財產神聖不可侵犯嘛,即使是子女,朋友,都不可使用。
3、protected:protected對於子女、朋友來講,就是public的,能夠自由使用,沒有任何限制,而對於其餘的外部class,protected就變成private。ide
做用域 當前類 同一package 子孫類 其餘package 函數
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不寫時默認爲friendly 學習
每每在初學Java的時候,都不會提訪問權限和修飾符的問題,在Java的學習中通常都要到包的概念學完纔會涉及訪問控制:spa
priavte 本類可見對象
public 全部類可見繼承
protected 本包和全部子類均可見作用域
friendly 本包可見(即默認的形式)get
其實在實際應用中,public和private是比較熟悉和好記憶的,主要記住區別protected和friendly兩種訪問控制修飾符。it
那麼在實際應用中,private的類型是在封裝的概念上體現較爲明顯的。private類型的變量都須要經過調用對象的getter和setter方法來訪問。爲了安全起見,public多適用於構造方法(單對象類除外)、類靜態常量等一些形式。