黑马程序员技术交流社区

标题: 打印错误问题 [打印本页]

作者: 陈少文    时间: 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