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

基本变量 赋值的问题,请指点一下
Java code

public class C02 {

    private static int x =getvalue();
    private static int y=5;
    public static int getvalue(){return y;}
    
    public static void main(String[] args) 
    {
      System.out.println(x);
    }
}




x 打印出来0 为什么?? 请讲解一下。

------解决方案--------------------
1.x=getvalue();
2.跳到getvalue:此时,y = 0;
3.x = y = 0;
4.y = 5;
5.打印。
------解决方案--------------------
探讨
朋友,这个问题是这样的,x被申明为static型,这说明他将在该类第一次被调用时在该类的静态存储单元中被初始化,而且在整个程序执行过程中只有一份!那么当进入程序的时候在运行所有程序之前,程序一定会先初始化,这时成员变量被赋予“0”初值。int型的就被赋予0。然后在运行中程序发现内存中已经有了x静态变量,所以不会创建新的x。所以总是0,如果不将其定义为static,像下面这样,这个问题就解决了!

       pr…