我知道这是一个非常基础的主题,如果这是一个重复的问题,请提供参考。
假设有以下代码:
public class Point {
int x = 42;
int y = getX();
int getX() {
return x;
}
public static void main (String s[]) {
Point p = new Point();
System.out.println(p.x + "," + p.y);
}
}
它输出: 42,42
但如果我们改变变量出现的顺序:
public class Point {
int y = getX();
int x = 42;
int getX() {
return x;
}
public static void main (String s[]) {
Point p = new Point();
System.out.println(p.x + "," + p.y);
}
}
输出结果为:42,0
在第二种情况下,我理解的情况是: "好吧,我不知道返回的x值是什么,但肯定有某个值"。但我并不完全理解x如何在这里被看到,而又没有与其值一起被看到。这是否与编译时和运行时有关?谢谢。