下面的代码正确
下面的代码错误(由于是静态的,又是final的,所以要求你在最先声明的那句话就要给它赋值,不允许你在构造函数中赋值)
下面的代码错误(这个就是最基本的final含义,你赋值过了,后面就不允许你赋其它值了)
下面的代码错误(final变量,你要么在声明的时候初始化,要么就在构造函数中初始化,出了这两个地方,再去赋值也要报错。)(从这点你也可以知道,如果是static final连用,那么就只有一个地方初始化了,只有声明的地方了,连构造函数中初始化的机会也没有了。)
public class Test {
public final String a;
public Test(){
a = "xxx";
}
public static void main(String[] args) {
Test t = new Test();
System.out.println(t.a);
}
}
下面的代码错误(由于是静态的,又是final的,所以要求你在最先声明的那句话就要给它赋值,不允许你在构造函数中赋值)
public class Test {
public static final String a;
public Test(){
a = "xxx";
}
public static void main(String[] args) {
Test t = new Test();
System.out.println(t.a);
}
}
下面的代码错误(这个就是最基本的final含义,你赋值过了,后面就不允许你赋其它值了)
public class Test {
public final String a;
public Test(){
a = "xxx";
}
public static void main(String[] args) {
Test t = new Test();
System.out.println(t.a);
t.a = "sxx"
}
}
下面的代码错误(final变量,你要么在声明的时候初始化,要么就在构造函数中初始化,出了这两个地方,再去赋值也要报错。)(从这点你也可以知道,如果是static final连用,那么就只有一个地方初始化了,只有声明的地方了,连构造函数中初始化的机会也没有了。)
public class Test {
public final String a;
public Test(){
}
public static void main(String[] args) {
Test t = new Test();
t.a = "xxx";
System.out.println(t.a);
}
}