成员变量和局部变量的区别
1在类中的位置不同
局部变量:类的方法体内
成员变量:类的方法之外
2内存的不同位置
局部变量:在栈内存中
成员位置:在堆内存
3生命周期不同
局部变量:随着方法的调用而存在,随着方法调用的结束而消失
成员变量:随着对象的创建而创建,对象的消失而消失
4初始化值不同
局部变量:没有默认的初始化值,先定义赋值
成员变量:有默认的初始化值
注意:成员变量名称可以和成员变量的相同,在方法使用的时候采用就近原则
测试:
1 class Varialbe { 2 //成员变量 3 //int num = 10; 4 int num; //0 5 6 public void show() { 7 //int num2 = 20; //局部变量 8 //可能尚未初始化变量num2 9 //int num2; //没有默认值 10 int num2 = 20; 11 System.out.println(num2); 12 13 //int num = 100; 14 System.out.println(num); 15 } 16 } 17 18 19 class VariableDemo { 20 public static void main(String[] args) { 21 Varialbe v = new Varialbe(); 22 23 System.out.println(v.num); //访问成员变量 24 25 v.show(); 26 27 } 28 }