为什么运行这段Java代码后输出的结果是 0 而不是10?
publicclassTest{privateinti=f();privateintj=10;privateintf(){returnj;}publicstaticvoi...
public class Test {
private int i = f();
private int j = 10;
private int f() {
return j;
}
public static void main(String args[]) {
System.out.println((new Test()).i);
}
} 展开
private int i = f();
private int j = 10;
private int f() {
return j;
}
public static void main(String args[]) {
System.out.println((new Test()).i);
}
} 展开
4个回答
展开全部
因为你new Test之后调用了i变量,但是f()也属于Test的方法,你并没有调用f()方法来给i赋值,所以说i的值是系统初始化的int形,默认是0。
你可以将int i = f()放在private int f() { return j;}后面,这样就好了。
你可以将int i = f()放在private int f() { return j;}后面,这样就好了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很简单,因为你的int i = f(); 在前面。。 也就是说这时候f()返回的值j它的默认值是0
所以输出是0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-01-06
展开全部
我的理解是 程序是按顺序执行的,变量i在赋值的时候,变量j此时的值为0,它还未被赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询