public class Test7
{
public static void main(String[] args)
{
}
public static void function_1(int a,int b)
{
System.out.println(a+b);//a,b是局部变量编译通过
}
public static void function_2()
{
int a,b;
System.out.println(a+b);//a,b也是局部变量但是编译失败!!!不是说默认初始值为0吗?为什么啊??
}
public static int function_3(int c)
{
return c;//此时c是局部变量,编译通过。
}
public static int function_4()
{
int c;
return c;//此时c也是局部变量,但是编译失败!!!默认初始值难道在确定的某些位置上才生效吗?求解释。。
}
}作者: 葬天 时间: 2012-10-8 11:08
类的成员,JVM会自动给它们赋初始值。
boolean类型赋值为false
引用类型赋值为null
其它的赋值为0
参数变量是何时调用函数何时传值,所以值还会变化,
方法内部的变量一旦定义不赋值使用的话就没有值,所以会编译报错作者: 王虎 时间: 2012-10-8 12:19
局部变量如果没有使用不初始化,编译是可以通过的;如果使用了,不初始化编译不通过报错;
这里你的function_2()里报错是因为 System.out.println(a+b);这一句使用了a 、b所以会编译不通过,如果你不使用a、b,就不会报错
function_4()还是这个问题,return c ,用到c了所以编译不通过,报错
而成员变量中,在你的程序中比如private int a ;这个可以选择不初始化,java会自动帮你初始化成初始值0;
这里function_1(int a,int b) function_3(int c) 里的参数都是局部变量,所以java自动会为你初始化,编译通过,不会报错