public abstract class wren
{
public static void main(String[] args)
{
int num;
System.out.println(num);
}
}
这个为什么错了??  num的初始值不是为0么?

解决方案 »

  1.   

    num的初始值是0不假,但是你的这个num是main方法的局部变量,系统根本没有给它赋予默认值的机会。所以这是错误的。如果是这样,那么系统会在初始化对象wren 的时候,给num赋予默认值0:public class Wren {

    int num; public static void main(String[] args) {
    Wren wren = new Wren ();
    System.out.println(wren.num);
    }
    }
      

  2.   

    我记得对象实例化后,其中的成员变量才有系统默认的初始值,而象int这些基本数据类型的变量没有赋值前是没有初始值的.
      

  3.   

    Java为所有的成员变量提供了默认初始化,局部变量需要自己初始化
      

  4.   

    int num 是局部变量,必须先赋值再使用!在你的程序中,非static变量不能放在static方法内!完毕!
      

  5.   

    num为成员变量的话就不用给它初始值,因为初始化时候给它默认值0。但你这是局部变量
    就像楼上说的
      

  6.   

    支持1楼的说法,你定义的num是局部变量,在编译时是不会被默认初始化的,你必须得显示的进行初始化才行;如果是实例变量的话,就会在编译的时候进行默认的初始化,即为0。
      

  7.   

    如何把INT 的值让它初始默认为0呢?