局部变量与成员变量发生重名冲突解决
使用this关键字
this关键字代表了当前类(Student )代码中 private 至行末‘;’为声明的局部变量String name,而 void __(XXX xxx){}中的String name重名,我们可使用this.name名访问类的成员变量,即可解决重名冲突。
public class Student {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
拓展知识:在JAVA中,变量根据使用的范围不同可分为成员变量与局部变量
- 成员变量的上一级括号是类的;局部变量的上一级括号是在具体方法体或者参数列表中。
- 成员变量已经升格成为包装数据类型,而成员变量却不会变化;导致变量是否要初始化(就像byte、short、int…没有默认值,而Byte、Short、Integer…有默认值)变量生命周期(储存位置)不一样。局部变量伴随着方法(在方法栈),而成员变量伴随着类或者类的实例化-对象(在内存堆中)