声明,不记得这题是从哪里弄来的,如果原作者发现请见谅问,输出结果是什么(当然要在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());
}
}因为我想的结果与答案不一致,也在群里问了很多朋友,但答案太多了,现在也没有弄明白,期待回复,谢谢

解决方案 »

  1.   

    你这个THIS_YEAR还没来得及初始化呢。
    结果应该是-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的初始原理