java空白final的问题class Final{Final(){System.out.println("Final constructor");}}public class FinalTest{private final int a;private final Final f;public FinalTest(int i){a=i;System.out.println(a);}public FinalTest(Final f){this.f=f;}public stati
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/27 01:06:14
java空白final的问题class Final{Final(){System.out.println("Final constructor");}}public class FinalTest{private final int a;private final Final f;public FinalTest(int i){a=i;System.out.println(a);}public FinalTest(Final f){this.f=f;}public stati
java空白final的问题
class Final{
Final(){
System.out.println("Final constructor");
}
}
public class FinalTest{
private final int a;
private final Final f;
public FinalTest(int i){
a=i;
System.out.println(a);
}
public FinalTest(Final f){
this.f=f;
}
public static void main(String[] args){
FinalTest x=new FinalTest(2);
FinalTest p=new FinalTest(new Final());
}
}
不知道这里哪里错了
编译器说a和f未初始化
但是我不是在构造器里初始化了嘛
java空白final的问题class Final{Final(){System.out.println("Final constructor");}}public class FinalTest{private final int a;private final Final f;public FinalTest(int i){a=i;System.out.println(a);}public FinalTest(Final f){this.f=f;}public stati
空白final可以不用定义时赋值,楼主类中定义的变量a与f都没有问题.
问题在于构造函数,两个构造函数中,实例化时只会有一个被调用,导致会有一个变量未初始化.
比如,FinalTest x=new FinalTest(2);时,这时候a有值了,可是f是没有初始化的.