java代码运行结果有疑问求大神讲解

请高手解答,整个代码的运行过程,是如何变成2的,请尽量详细一些!谢谢代码如下:publicclassTest{staticinti;publicintaMethod(){... 请高手解答,整个代码的运行过程,是如何变成2的,请尽量详细一些!谢谢
代码如下:
public class Test{
static int i;
public int aMethod() {
i++;
return i;
}
public static void main(String args[]) {
Test test = new Test();
test.aMethod();
System.out.println(test.aMethod());
}
}
运行结果为:

2
展开
 我来答
花二十三0H49e0
2013-10-22 · TA获得超过108个赞
知道答主
回答量:102
采纳率:0%
帮助的人:79.9万
展开全部
很简单:
(1) Test test = new Test();执行时,静态变量i变为0(默认初始化)
(2)test.aMethod();(调用aMethod()函数,i自增1,此时i=1)
(3)System.out.println(test.aMethod());(调用aMethod()函数,i自增1,此时i=2)

有什么问题可以继续提问?
jk061
2013-10-22 · 超过30用户采纳过TA的回答
知道答主
回答量:152
采纳率:0%
帮助的人:54.2万
展开全部
首先,test被new出来之前,i已经初始化为0.
test.aMethod()使得i++;i变为1;
println时,又调用一次aMethod(),i++;之后i变成2;return i之后被println输出来。
所以是2.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
balsum
2013-10-22 · TA获得超过311个赞
知道小有建树答主
回答量:188
采纳率:100%
帮助的人:185万
展开全部
首先,基本类型int的默认值是0,单从你代码上看,可以简单理解为,你调用了两次该方法,会就执行两次i++; 第一次由0到1,第二次由1到2。所以得出结果为2。
静态变量又称类变量,它是在一个JVM加载类时就初始化好的。所以在产生该类对象时,不会重新初始化静态变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式