Java 程序打印-1
为什么要打印-1?您没有按顺序发言 当你写作时Java 程序打印-1,java,Java,为什么要打印-1?您没有按顺序发言 当你写作时 public class Home { private static Home home = new Home(); private static int DEFAULT_NR_OF_ROOMS = 4; private final int rooms; public Home() { rooms = DEFAULT_NR_OF_ROOMS - 1; }
public class Home {
private static Home home = new Home();
private static int DEFAULT_NR_OF_ROOMS = 4;
private final int rooms;
public Home() {
rooms = DEFAULT_NR_OF_ROOMS - 1;
}
public static void main(String[] args) {
System.out.println(home.rooms);
}
}
在语句之前调用构造函数
private static Home home = new Home();
因此,在执行构造函数时,默认值为0
要查看更改,请首先指定值,然后调用构造函数
public Home() {
rooms = DEFAULT_NR_OF_ROOMS - 1; // 0-1
}
答案-1是正确的,
如果你想要答案是3,那么你的代码应该是
private static int DEFAULT_NR_OF_ROOMS = 4;
private static Home home = new Home();
在第一种情况下,答案为-1的原因是当语句private static Home=new Home时;执行时,默认的\u NR\u OF \u ROOMS值未指定为4,因为该语句位于构造函数行之后。因此,在将值分配给静态变量之前,默认的\u NR\u房间的默认int值为0。 所以在构造函数代码中,没有静态变量的值 将语句序列交换为
private static int DEFAULT_NR_OF_ROOMS = 4;
private static Home home = new Home();
然后您将得到答案为3,因为当调用构造函数时,静态变量已被赋值。这是一个难题还是您遇到了问题?当然,您可以告诉我们它打印了什么。我们可以告诉你为什么。另外,你问题末尾的无效代码是关于什么的?新用户,新帐户,第一个问题来自你的家庭作业?你是真的吗,伙计?
private static int DEFAULT_NR_OF_ROOMS = 4;
private static Home home = new Home();
private static int DEFAULT_NR_OF_ROOMS = 4;
private static Home home = new Home();