日期:2014-05-20  浏览次数:20700 次

java解释
class  C1
{
static int j = 0;
public void method(int a)
{
j++;
}
}
class Test12 extends C1
{
public int method()
{
return j++;
}
public void result()
{
method(j);
System.out.println(j+method());
}

public static void main(String[] args) 
{
new Test12().result();
}
}

请大神帮我分析下这个程序

------解决方案--------------------
请问有什么问题吗?
new Test12().result();
所有的执行都在这一句,
没有构造方法,不会执行代码,那么所有的操作都在result()这个方法。
method(j);这个是执行父类的方法,结果为j = 1;
System.out.println(j + method()); 这个为输出结果,因为上面得到了j=1,method()方法返回j=1的值,本身值应该为2了。
因为加法运算是从左至右,j=1的值已经取出来,不会采用j本身为2的值了。
结果输入2。应该这个答案是正确的。