Java自學第七課值訪問控制權限——自學筆記
阿新 • • 發佈:2018-12-15
類的訪問控制權限
類訪問控制權限只有兩種,一種是public(公有類),一種是無修飾符的(預設類)。
當使用public修飾類時,所有的其他類都可以訪問;當沒有修飾符的時候,只有處於同一個保重的其他類可以訪問。
型別 | 無修飾符 | public |
---|---|---|
同一個包中的類 | 可以訪問 | 可以訪問 |
不同包中的類 | 不能訪問 | 可以訪問 |
在一個源程式檔案中,最多隻能有一個公有類即public class,且類名必須與源程式檔名相同。
類的成員變數訪問控制權限
類的成員變數的訪問許可權和類的訪問許可權不同,成員變數的訪問許可權有4個,分別是 public、private、protected及無修飾符
- public(公有類):用public修飾的變量表示是公有的,也就是這個變數可以被類外任何地方訪問,前提是對這個類有訪問許可權,如果對這個類都沒有訪問許可權的話,肯定也就訪問不了類中的變量了。
- private(私有的):用這個修飾符修飾後,變數只能在這個類中訪問,在類外不能訪問。
- protected(受保護的):只有用一類以及他的子類的例項物件可以訪問,可以說,這個修飾符是專門為繼承所準備的修飾符。
- 無修飾符(預設):不寫修飾符預設是friendly,相應的成分可以被所在包中各類訪問。
型別 | private | 無修飾符 | protected | public |
---|---|---|---|---|
同一類 | 可訪問 | 可訪問 | 可訪問 | 可訪問 |
同一包中的子類 | 不可訪問 | 可以訪問 | 可以訪問 | 可以訪問 |
同一包中非子類 | 不可訪問 | 可訪問 | 不可訪問 | 可訪問 |
不同包中的子類 | 不可訪問 | 不可訪問 | 可訪問 | 可訪問 |
不同包中非子類 | 不可訪問 | 不可訪問 | 不可訪問 | 可訪問 |
好的程式設計習慣一般不允許其他類直接存取或修改一個物件的例項變數,所以很少使用public,一般都用private。
get/set方法
當變數被設為private後,其他類就不能直接通過 例項.變數名來取得變量了,那麼我們需要給這個變數新增get和set方法,這兩個方法是public的,所以可以通過 例項.get/setName方法();
get方法是取得這個變數的值,格式為: public get(){ return 變數; } 例如 public int getA(){ return a; }
set方法是設定屬性變數的值,格式為: public void set(){ =; }
例如 public void setA(int a){ A=a;//前者是實參,後者是形參,一般呼叫是為:例項.setA(想要設定的值); }