public class demo{
int x ;
x = 1;//这句会报错
}
上边是两个语句,第一个,声明一个类的成员变量,第二个,对成员变量赋值,而成员变量属于对象,对它的赋值只能由对象来操作,在类中单独对其赋值,当然要报错了。(类里面只能放成员变量和方法吧,赋值是个操作)
public class demo{
int x = 1; //这条语句是声明成员变量的同时并为其指定初始值,不会报错
}
public class demo{
int x ; //这条语句是声明成员变量,并没有为其指定初始值,不会报错
}
class test{
public static void main(String[] args) {
demo d = new demo();
System.out.println(d.x);//运行结果为0
}
}
成员变量可以不用赋初值,在new
对象的时候,系统会默认设置一个初值,基本数据类型赋为0
,如果是引用类型的成员变量则会赋值为null
public class demo{
public static void main(String[] args) {
int x;
x = 1;
int y = 1;
}
}
这段代码在main
方法中声明了一个局部变量,并且在main
方法中为变量赋值,所以没有错误(这个变量的作用域只能是main
方法,出了main
方法再赋值就会报错了)
public class demo{
public static void main(String[] args) {
int x;
System.out.println(x); //此刻会报 Variable 'x' might not have been initialized 错误
}
}
上边需要搞清楚的是,成员变量可以不赋初值,创建对象后直接使用,局部变量必须要声明并赋值后,才能使用