Я определил объект и объявил статическую переменную i
. В методе get()
, когда я пытаюсь напечатать переменную instance и class, оба печатают одно и то же значение.статическая переменная vs не статическая переменная
Не является ли this.i
переменной экземпляра? Должен ли он печатать 0 вместо 50?
public class test {
static int i = 50;
void get(){
System.out.println("Value of i = " + this.i);
System.out.println("Value of static i = " + test.i);
}
public static void main(String[] args){
new test().get();
}
}
Переменная 'static' объявляется на уровне класса, а не в экземпляре. Он всегда будет одинаковым для каждого экземпляра. На него можно ссылаться как 'this.VARIABLE' или' Type.Variable'. –
Как в стороне, даже для тестового кода лучше следовать правилам именования. Было бы более очевидно, что происходит, если ваш класс назывался 'Test', а не' test'. –