this的作用:
1. 构造函数之间的调用要用到this。
2. 可以用this标识哪个变量是成员变量,这个标识可以省略不写。但是,当局部变量和成员变量同名时,必须用this.来 标识成员变量。
public class Person {
private String name;
private int age;
public void speak() {
String name="HAHA";
System.out.println("name="+this.name+",age="+this.age);//this.name为成员变量的name
System.out.println("name="+name+",age="+this.age);//此时的name为speak的局部变量name="HAHA"
}
}
参数和局部变量同名时,要用this。如下面这个例子:
public class Person {
private String name;
private int age;
Person(String name,int age)
{
name=name;//这相当与参数name给自己赋值。所以成员变量根本没有赋上我们想让它赋的值。所以应该改成this.name=name,下面的age也是。
age=age;
}
public void speak() {
System.out.println("name="+this.name+",age="+this.age);
}
}
结果:name=null,age=0
练习:判断是否两人为同龄人。
public boolean equalsAge(Person pp)
{
if(pp.age==this.age)
return true;
else
return false;
}
其实上面可以写简单点:
public boolean equalsAge(Person pp)
{
return pp.age==this.age?true:false;
}
还可以更简洁:
public boolean equalsAge(Person pp)
{
return pp.age==this.age;
}