1.变量在使用前必须进行初始化。
2.成员变量和局部变量初始化的区别:
在类内的成员变量:随着类的加载会有一个默认的初始值,不管这个变量在类中是否被赋值,系统都会为其设置一个默认值。如下例中a的默认初始值为0,而b为null;而只有当用Demo创建对象调用了这个类的构造器时才会自动将3赋值给a;可参考(https://www.zhihu.com/question/36643366)
局部变量:并没有构造器为其自动的赋个初始值,所以在使用前必须手动的为其赋值。
class Demo
{
int a=3;
String b;
b="A" //报错
public static void main(String[] args)
{
int c;
c=3;
}
}
3 上例中报错的原因:在类中只能定义成员,方法,内部类。向b="A"这样的语句java规定在类中不能用,想用可以在构造器中使用。而在方法中却可以这样做。
4成员变量可以先使用后定义,局部变量必须先定义在使用:如下:因为void是属于对象的,调用demo()时候必先创建对象,与此同时成员变量X已经存在了。
class Test
{
void demo()
{
System.out.println(X); //先使用后定义
}
String X;
}