局部变量与成员变量的不同
1,定义的位置不同(重要)
局部变量:在方法的内部
成员变量:在方法外部,直接写在类当中
2,作用范围不一样
局部变量:只有在方法体内才有效,出了方法就不能在用了
成员变量:整个类都可以用。
3,默认还是不一样的
局部变量:没有默认值,使用时需手动赋值。
成员变量:如果没有赋值,会使用默认值,规则和各种类型数据一样
4,内存位置不一样(了解)
局部变量,位于栈内存当中。
成员变量:位于堆内存当中。
5,生命周期不一样
局部变量:随方法进栈而诞生,随访发出栈而消失。
成员变量:随方法创建而诞生,随之对象垃圾回收(java的垃圾回收机制)
而消失。
试验一下:
String name;
public void main() {
int n = 30;
System.out.println(n);
System.out.println(name);
}
public void as(int as) {//方法的参数就是局部变量
System.out.println(as);//不报错是因为,方法
// 被调用时必然会被赋值的
int n;
int b = 30;
//System.out.println(n);//错误写法,
// 没有赋值无法使用
System.out.println(b);
System.out.println(name);
}