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 キーワードは、このメンバーを含むクラスを除き、このパッケージ内の他のクラスを含む他のクラスがこのメンバーにアクセスできないことを意味します。したがって、異なるパッケージだけでなく、同じパッケージにもアクセスできません。
PHP中文网2017-04-18 10:49:37
うまくいかない場合、i はどこで無駄に宣言されているのでしょうか?
また、プライベートとは、Test クラスを呼び出すときに他のクラスから呼び出すことができず、このクラスは制限されていないことを意味します。
高洛峰2017-04-18 10:49:37
明らかに、再学習する必要があります: public private static protected オブジェクト指向プログラミングにおけるこれら 4 つの一般的な修飾子です
大家讲道理2017-04-18 10:49:37
i は static であるため、test.i (instance. static 変数) は Test.i (class. static 変数) と同等であり、i はプライベートであるため、Test クラス内でのみアクセスできます。