1.在类中的位置不同
成员变量:类中方法外
局部变量:方法内
2.在内存中的位置不同
成员变量:堆内存中
局部变量:栈内存中
3.生命周期不同
成员变量:随着对象的存在而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
4.初始化值不同
成员变量:有默认的初始化值
局部变量:没有默认的初始值,必须先定义,赋值,才能使用
注意:
1)局部变量的名字可以和成员变量的名字一样,在方法中使用的时候,采用就近原则
方法中使用的变量,会先在方法内部查找,如果方法内部没有,就去成员变量中查找
2) 方法和方法之间里面的局部变量,不能相互调用
class BianLiang{
String name;
int age;
public void show(int n){
n = 10;
int a = 20;
// int b;
// System.out.println(b); 报错.局部变量要赋值才能使用
System.out.println(n);
System.out.println(a);
String name = "王宇"; //局部变量的名字可以和成员变量的名字一样
System.out.println(name); //在方法使用的时候,采用就近原则
}
public void show2(){
// System.out.println(a); 先在方法内部查找a,再去成员变量中查找,方法与方法之间的局部变量不能相互调用
}
}
public class BianLiangDemo {
public static void main(String[] args) {
//成员变量的使用,需要创建对象(最起码这里是要创建对象才能使用的)
BianLiang b1 = new BianLiang();
b1.name = "小明";
System.out.println(b1.name);
b1.show(100);
}
}