在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的方法把局部变量与全局变量进行区分