类是怎么样初始化的

hailun 2008-03-11 08:12:51
声明,不记得这题是从哪里弄来的,如果原作者发现请见谅

问,输出结果是什么(当然要在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());
}
}

因为我想的结果与答案不一致,也在群里问了很多朋友,但答案太多了,现在也没有弄明白,期待回复,谢谢
...全文
53 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cursor_wang 2008-03-11
  • 打赏
  • 举报
回复
看来你要多看书了.
keyboardsun 2008-03-11
  • 打赏
  • 举报
回复
你这个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的初始原理

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧