这是输出(以我的例子为例):
“0
18"
但通常情况下,Checks 类的对象“checks”会在 18 时初始化 Checks
类的变量 n
,但这并没有发生。
public class Connect6 {
int n;
public Connect6(int n) {
this.n = n;
}
Checks checks = new Checks(n);
public void place() {
Terminal.printLine(checks.getN());
Terminal.printLine(n);
}
}
这是 Check 类(类 main
只是初始化一个对象 Connect6
并调用方法 place
):
public class Checks {
int n;
public int getN() {
return n;
}
public Checks(int n) {
this.n = n;
}
最佳答案
Checks checks = new Checks(n);
在 Connect6
构造函数的主体之前执行,因此 n
在时间。在 n
初始化之后,您应该在 Connect6
构造函数中创建 Checks
实例。
改变
public Connect6(int n) {
this.n = n;
}
Checks checks = new Checks(n);
到
private Checks checks;
public Connect6(int n) {
this.n = n;
this.checks = new Checks(n);
}
关于java - 构造函数不初始化变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49152030/