在java中,当成员变量与局部变量发生重名问题时,需要使用this关键字分辨成员变量与局部变量
这里首先说使用this关键字调用本类中的属性
下面是一段代码
lass Student6{
private String name;
private int age;
public Student6(String name,int age) {
name=name;
age=age;
}
public String read() {
return "我是:"+name+",年龄"+age;
}
}
public class ThisGuanjianzi {
public static void main(String[] args) {
Student6 stu=new Student6("张三",18);
System.out.println(stu.read());
}
}
这段代码中够造方法中参数名与类的属性名一致,如果不加以区分,就会导致成员变量与局部变量冲突。程序的运行结果是
我是null,年龄:0
这是由于编译器不知道哪个名称是当前对象的属性
修改后如下
lass Student6{
private String name;
private int age;
public Student6(String name,int age) {
this.name=name;
this.age=age;
}
public String read() {
return "我是:"+name+",年龄"+age;
}
}
public class ThisGuanjianzi {
public static void main(String[] args) {
Student6 stu=new Student6("张三",18);
System.out.println(stu.read());
}
}
通过this的方法把局部变量与全局变量进行区分