存取控制有兩層:

第一層(頂端階層,類別階層)public,package-private(沒有修飾子)

 

第二層(成員階層)public,private,protectedpackage-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


classesaccess

舉一個例子來看,類別之間的關係如上圖,那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

 

創作者介紹
創作者 roczen2007 的頭像
roczen2007

roczen2007

roczen2007 發表在 痞客邦 留言(0) 人氣( 39 )