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);
}
}
如题 谢谢
其实就是初始化的一个先后顺序问题
先执行构造函数
[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
这个什么输出原理? 能不能说明白的
那 你的private static int count1;
有值吗?
那你的输出应该是
count1==null
count2==5
这就是一个简单的单例模式。