Java中以下變量的可訪問性有什麼區別?Java實例變量可訪問性
public class Joe {
public int a;
protected int b;
private int b;
int c;
}
我最感興趣的是最後一個做的事情。
Java中以下變量的可訪問性有什麼區別?Java實例變量可訪問性
public class Joe {
public int a;
protected int b;
private int b;
int c;
}
我最感興趣的是最後一個做的事情。
更多細節
EDIT見JLS:增加了保護,指出訪問是從同一個包內授予的評論,你們是完全正確的。還爲私人添加評論。我現在記得... ;-)
所有這些都是編譯時保護,它們可以很容易地通過在運行時反射來覆蓋。
我儘量避免包級訪問(您提到的最後一次訪問)。
我喜歡讓課程自成一體。如果另一個類需要訪問我的類中的某些東西,它應該是公開的(並且它應該通過方法而不是屬性)。否則,我覺得你已破壞encapsulation,正如Abstraction VS Information Hiding VS Encapsulation中所述。
對不起回答更正一個以前的答案,但我沒有足夠的聲譽直接修改...
從最寬的訪問權限(公共)到最窄的(私有)知會這種方式更好地命令訪問修飾符當從狹窄到寬闊時,你不會失去任何可能性。
這對「保護」,它經常被誤解,在同一個包中的類也可以訪問類(不只是它的子類)的保護成員尤爲重要。
DUPE:http://stackoverflow.com/questions/215497/in-java-whats-the-difference-between-public-default-protected-and-private – 2008-11-06 09:58:47