发新话题

谁能给我解释下这个小程序???

public class StaticTest
{
private static StaticTest st = new StaticTest();

private static int a;

private static int b = 0;

private StaticTest()
{
a ++;
b ++;
}

public static StaticTest getInstance()
{
return st;
}

public static void main(String[] args)
{
StaticTest.getInstance();
System.out.println("a:" + a);
System.out.println("b:" + b);
}

}

输出结果是 a=1;b=0
本人是菜鸟,给位达人给解释下,不胜感激!!



编辑 回复 快速回复 TOP
简单
private static StaticTest st = new StaticTest();
此语句会被先执行,由于其调用了构造器,所以此语句执行后
a=1
b=1

然后继续执行
private static int a;
private static int b = 0;

由于第一句没有赋值操作,所以跳过
第二句把b赋值为0
此时
a=1
b=0

OK
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP
厉害~~
编辑 回复 快速回复 TOP
路过
学习中
编辑 回复 快速回复 TOP
学习了 好久没有接触这个了
编辑 回复 快速回复 TOP
同样学习了
编辑 回复 快速回复 TOP
luguo
未来→在哪里?
编辑 回复 快速回复 TOP
发新话题