class ppp
{
public static int a; //应该是默认为0
public int b = a++; //这里应该自增
public static void main(String args[])
{
System.out.println(a); //输出为 0,怪了!!!
}
}
{
public static int a; //应该是默认为0
public int b = a++; //这里应该自增
public static void main(String args[])
{
System.out.println(a); //输出为 0,怪了!!!
}
}
b不是静态属性,它只有在new一个ppp类的对象时才会被初始化
也就是说只有当new一个ppp类时,才执行 a++
所以你的程序里没有自加
这句到目前为止还没有执行;
是一个执行语句。为什么可以不放在main方法里执行呢???
是不是JVM的漏洞啊。
程序执行应该是从main()开始的吧,
你这个代码是先执行了静态方法main,然后执行初始化变量a,非静态变量b没用上。
static的属性,怎么可能改变?
楼主的意思应该是想问为什么a++;没有被执行吧? public static int a; //静态属性,与类有关,类定义出来,a就出来了 public int b = a++; //实例属性,与对象有关,只有实例化类后(既new个),b才会有值.
为什么受不了啊,static怎么就不能改变了,这里不是static的问题
public int b = a++;