a8551069
2010-12-15 18:08
浏览 231
已采纳

谁给我解释下这段代码的输出原理?

class singlen {
private static singlen obj=new singlen();
public static int count1;
public static int count2=5;

private singlen(){
    //count1++;
    System.out.println("councstor"+count2);
    count2++;
}
public static singlen getInstence(){
    return obj;
}

}

class dd{
public static void main(String[] args){
singlen s=singlen.getInstence();
System.out.println("count1=="+s.count1);
System.out.println("count2=="+s.count2);

}

}

如题 谢谢

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 华子82 2010-12-16 14:39
    已采纳

    其实就是初始化的一个先后顺序问题
    先执行构造函数
    [code="java"]
    private singlen(){
    count1++;
    count2++;
    }
    [/code]
    count1和count2的值都变成1,然后在进行变量的赋值
    [code="java"]
    private static singlen obj=new singlen();
    public static int count1;
    public static int count2=5;
    [/code]
    count1没有值,跳过,count2赋值为5,

    所以最后打印室1和5

    评论
    解决 无用
    打赏 举报
查看更多回答(3条)

相关推荐 更多相似问题