class Test{
private static int i = 1;
public static void main(String[] args){
Test test = new Test();
System.out.println(test.i); //此处为何能访问到私有的i变量呢?
}
}
如果与Test类不同包,调用i变量却报错,为何?
黄舟2017-04-18 10:49:37
private關鍵字的意思是除了包含這個成員的類別之外,其他類別都沒辦法存取這個成員,包括同處於這個包內的其他類別。所以不僅是不同包,相同的包也無法存取。
大家讲道理2017-04-18 10:49:37
由於i是static,所以test.i(實例.靜態變數)等價於Test.i(類別.靜態變數),i又是private,所以只能在Test類別內被存取。