成员变量和局部变量区别,以及this关键字用法
成员变量:
- 类中位置:类中方法外
- 内存中位置:堆内存
- 生命周期:随着对象的存在而存在,随着对象的消失而消失
- 初始化值:有默认的初始化值
局部变量:
- 类中位置:方法内或者方法声明上
- 内存中位置:栈内存
- 生命周期:随着方法的调用而存在,随着方法的调用用完毕而消失
- 初始化值:没有默认的初始化值,必须先定义,赋值,才能使用
因此此时就会出现this关键字
this关键字
this修饰的变量用于指代成员变量
-
方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量。
-
方法的形参设有与成员变量同名,不带this修饰的变量指的是成员变量。
public class Student{ private String name; public String getName(){ return name; } public void setName(String name){ this.name = name; } }
其中,this.name = name中,左边的name为成员变量。右边的name为局部变量。
什么时候用this呢?
解决局部变量隐藏成员变量
this:代表所在类的对象引用
记住:方法被哪个对象调用,this就代表那个对象