声明,不记得这题是从哪里弄来的,如果原作者发现请见谅问,输出结果是什么(当然要在IDE里运行前说出结果)
import java.util.Calendar;
public class Test{
public static final Test INSTANCE = new Test();
private int size = 6;
private static int THIS_YEAR = Calendar.getInstance().get(Calendar.YEAR);
private Test(){
size = THIS_YEAR - 1930;
}
public int getSize(){
return size;
}
public static void main(String[] args){
System.out.println(INSTANCE.getSize());
}
}因为我想的结果与答案不一致,也在群里问了很多朋友,但答案太多了,现在也没有弄明白,期待回复,谢谢
import java.util.Calendar;
public class Test{
public static final Test INSTANCE = new Test();
private int size = 6;
private static int THIS_YEAR = Calendar.getInstance().get(Calendar.YEAR);
private Test(){
size = THIS_YEAR - 1930;
}
public int getSize(){
return size;
}
public static void main(String[] args){
System.out.println(INSTANCE.getSize());
}
}因为我想的结果与答案不一致,也在群里问了很多朋友,但答案太多了,现在也没有弄明白,期待回复,谢谢
结果应该是-1930;
private static int THIS_YEAR = Calendar.getInstance().get(Calendar.YEAR);
应该这么写
private int THIS_YEAR = Calendar.getInstance().get(Calendar.YEAR); 或者
package com.sample.action;import java.util.Calendar;
public class Test{
public static final Test INSTANCE = new Test();
private static int size = 6;
private static int THIS_YEAR = Calendar.getInstance().get(Calendar.YEAR);
static{
size = THIS_YEAR - 1930;
}
private Test(){
}
public int getSize(){
return size;
}
public static void main(String[] args){
System.out.println(INSTANCE.getSize());
}
}
楼主不明白static的初始原理