存取控制有兩層:
第一層(頂端階層,類別階層):public,package-private(沒有修飾子)
第二層(成員階層):public,private,protected或package-private(沒有修飾子)
類別階層:
一個類別可以被宣告為public,在這樣的情況下他對任何類別都是可視的,
如果沒有修飾子(預設的package-private),他只對自己所屬的package是可視的。
成員階層:
在這個階層,你能使用public或不用修飾子(package-private)就如同你在類別階層使用它們的意義是一樣的。
另外在這個階層還有private 和 protected兩個修飾子。
private - 成員只能在自己所屬的類別底下被存取。
protected - 能在自己所屬的package底下被存取,
此外也能被一個在其他package底下但是卻是他的子類別所存取。
下列表格顯示對每個修飾子對成員的存取權限。
Modifier Class Package Subclass World public Y Y Y Y proctected Y Y Y N no modifier Y Y N N private Y N N N

舉一個例子來看,類別之間的關係如上圖,那Alpha成員被各種修飾子所修飾,結果他的成員在其他類別的可視性如下表。
|
Modifier |
Alpha |
Beta |
AlphaSub |
Gamma |
|
public |
Y |
Y |
Y |
Y |
|
proctected |
Y |
Y |
Y |
N |
|
no modifier |
Y |
Y |
N |
N |
|
private |
Y |
N |
N |
N |
以上資料是來自:
http://download-llnw.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

請先 登入 以發表留言。