这是输出(对于我的例子):
" 0
18"
但通常是对象"检查"类Checks在18处初始化类n
的变量Checks
,但这不会发生。
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;
}
答案 0 :(得分:3)
Checks checks = new Checks(n);
在Connect6
构造函数的正文之前执行,因此n
当时仍为0。在Checks
初始化后,您应该在Connect6
构造函数中创建n
实例。
更改
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);
}
答案 1 :(得分:2)
检查对象在构造函数调用之前已初始化
正确的代码应如下所示:
public class Connect6 {
int n;
Checks checks;
public Connect6(int n) {
this.n = n;
this.checks = new Checks(n);
}
public void place() {
Terminal.printLine(checks.getN());
Terminal.printLine(n);
}
}
答案 2 :(得分:1)