1、成员变量和局部变量同名问题
当在方法中出现了局部变量和成员变量同名的时候,可以在成员变量名前面加上this.来区别成员变量和局部变量。
1 class Person { 2 private int age; 3 private String name; 4 5 public void speak() { 6 this.name = "小强"; 7 this.age = 18; 8 System.out.println("name=" + this.name + ",age=" + this.age); 9 } 10 } 11 12 class PersonDemo { 13 public static void main(String[] args) { 14 Person p = new Person(); 15 p.speak(); 16 } 17 }
2、this的应用
在Person类中定义功能,判断两个人是否是同龄人。
1 class Person { 2 private int age; 3 private String name; 4 5 public int getAge() { 6 return age; 7 } 8 9 public void setAge(int age) { 10 this.age = age; 11 } 12 13 public String getName() { 14 return name; 15 } 16 17 public void setName(String name) { 18 this.name = name; 19 } 20 21 public void speak() { 22 System.out.println("name=" + this.name + ",age=" + this.age); 23 } 24 25 // 判断是否为同龄人 26 public boolean equalsAge(Person p) { 27 // 使用当前调用该equalsAge方法对象的age和传递进来p的age进行比较 28 // 由于无法确定具体是哪一个对象调用equalsAge方法,这里就可以使用this来代替 29 /* 30 * if(this.age == p.age) { return true; } return false; 31 */ 32 return this.age == p.age; 33 } 34 }