局部变量与成员变量的不同
区别 | 局部变量 | 成员变量 |
---|---|---|
定义的位置不一样 | 在方法的内部 | 在方法的外部,直接写在类中 |
作用范围不一样 | 只在方法当中才可以使用,出了方法就不能再用 | 整个类全都可以通用 |
默认值不一样 | 没有默认值,如果要想使用,必须手动进行赋值 | 如果没有赋值,会有默认值,规则和数组一样 |
内存的位置不一样 | 位于栈内存 | 位于堆内存 |
生命周期不一样 | 随着方法进栈而诞生,随着方法出栈而消失 | 随着对象创建而诞生,随着对象被垃圾回收而消失 |
当方法的局部变量和成员变量重名的时候,根据“就近原则”,优先使用局部变量
public class Person{
String name;
public void sayHello(String name){
System.out.println(name+",你好,我是"+this.name);
}
}
本段代码中第一个name是参数name,是局部变量,
第二个this.name的name是成员变量。