我们今天来说一下this关键字在构造函数间的调用。
我们举个例子。
class Person
{
private String name;
private int age;
Person(String name)
{
this.name=name;
}
Person(String name,int age)
{
this.age=age;
this.name=name;
}
}
我们可以发现平时在进行构造函数的定义的时候,上面那个构造函数是姓名,下面是姓名加年龄,那么功能是不是有重复的。那么我们可以用封装完的函数拿来用就可以了。我们在构造函数中调用其他函数是不能直接调用的,这个只是在构造函数中,在其他函数中还是可以正常调用的,我们在构造函数中调用是需要加this的。我们可以把这个代码改成这样。
class Person
{
private String name;
private int age;
Person(String name)
{
this.name=name;
}
Person(String name,int age)
{
this(name);
this.age=age;
}
}
我们可以得出来this语句:用于构造函数之间互相调用。然后创建对象运行就行了。
class Person
{
private String name;
private int age;
Person(String name)
{
this.name=name;
}
Person(String name,int age)
{
this(name);
this.age=age;
}
}
class PersonDemo
{
public static void main(String[ ] args)
{
Person p=new Person("lisi",20);
}
}
另外还有this语句只能定义在构造语句的第一句。不然系统会报错,我们把this(name);放在this.age=age;的后面,然后运行。
所以我们一定要注意this的格式。不然会报错。