例:
class Person
{
private String name;
private int age;
Person(String name, int age)
{
this.name = name;
this.age = age;
System.out.println(" name="+name+", ,age="+age);
}
}
class PersonDemo2
{
public static void main(String[] args)
{
Person p = new Person("lisi", 6);
}
}
简单说:哪个对象在调用this所在函数,this就代表哪个对象
--------------------------------------------------------------------------------------------
this的应用:当定义类中功能时,该函数内部要用到调用该
函数的对象时,这时用this来表示这个对象。
需求:给人定义一个用于比较年龄是否相同的功能
代码:
class Person
{
private String name;
private int age;
Person(int age)
{
this.age = age;
}
public boolean compare(Person p)
{
return this.age==p.age; //this代表p1,因为p1对象调用compare函数,
}
}
class PersonDemo2
{
public static void main(String[] args)
{
Person p1 = new Person(20);
Person p2 = new Person(25);
boolean b = p1.compare(p2); // p1调用compare函数
System.out.println(b);
}
}
---------------------------------------------------------------------------------------------
/*
this语句用于构造函数之间相互调用
this语句只能定义在构造函数的第一行。
因为初始化要先执行。
*/
class Person
{
private String name;
private int age;
Person()
{ }
Person(String name)
{
this();//调用空参数Person
this.name = name;
}
Person(String name, int age)
{
//this.name = name;
this(name);// 只能放第一行,构造函数间调用p(name);
this.age = age;
}
}
class PersonDemo4
{
public static void main(String[] args)
{
Person p = new Person("lisi",30);
Person p1 = new Person("lisi2",36);
}
}
---------------------------------------------------------------------------------------------
个人总结:理解this是,谁调用该函数就指向谁。要会分析代码中this所代表的对象。
this语句只能用于构造函数第一行