this关键字用于区分局部变量和成员变量同名的情况
this为什么可以解决成员变量和局部变量之间的不同
this特点:this代表本类的对象,到底代表哪一个对象?
this代表所在函数所属对象的引用。(简单说哪个对象在调用this所在的函数,this就代表哪个对象)
this关键字的应用:当定义类中函数(功能)时,该函数内部要用到调用该函数的对象时,这时要用this来表示这个对象。
class PersonDemo3
{
public static void main(String[] args)
{
Person p1 = new Person(20);
Person p2 = new Person(25);
boolean b=p1.compare(p2);//这里是最重要的将两个人的年龄做一个比较
//Person p= new Person("lisi");
//Person p1=new Person("zhangsan");
//p.speak();
//p1.speak();//注意这里用this指针后输出为各自的年龄
}
}
class Person
{
private String name;
private int age ;
//private Person(String n);//如果是这样,编译会提示无法将类Person中的构造器Person应用到给定类型
Person(String name)//局部变量和成员变量同名,为了便于成语的可阅读性将局部变量和成员变量同名
{
this.name=name;
}
Person(String name,int age)
{
this.name = name;
this.age = age;
}
public void speak()
{
System.out.println("name="+name+"..age="+age);
show();
}
public void show()
{
System.out.pringln(this.name)
}
/*需求;给人定义一个用于比较年龄是否相同的功能,也是判断是否是同龄人*/
public boolean compare(Person p)
{
return this.age==p.age;
}
}