黑马程序员技术交流社区
标题:
打印错误问题
[打印本页]
作者:
陈少文
时间:
2012-6-21 02:52
标题:
打印错误问题
代码:
public class Count
{
static int first = test();
static int second = 2;
static int test() {
return second;
}
public static void main(String[] args) {
System.out.println("first = " + first);
}
}
请问一下,打印出来的结果为
first = 0 而不是first = 2 是不是与static 有关
作者:
李元峰
时间:
2012-6-21 03:05
本帖最后由 李元峰 于 2012-6-21 03:10 编辑
package com.heima.test;
public class Count
{
static int second = 2;
static int first = test(); //注意顺序,变量初始话也是讲顺序的
static int test() {
return second;
}
public static void main(String[] args) {
System.out.println("first = " + first);
}
}
这次就是你想要的结果了!
为什么呢,当你在 static int first = test();时,进入test()方法,但是second 还没有定义(在你原来的程序里),现在改变顺序后就是正确的了
作者:
李文龙
时间:
2012-6-21 08:01
程序是顺序执行的,当程序运行static int first = test(); 的时候,进入 static int test() 方法,此时, second 变量的值还没赋值,程序默认初始化为0
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2