构造函数是对象初始化时调用的。
给哪个对象初始化呢?
通过this关键字来记录对象的地址,并通过this来明确被初始化的对象。
在构造函数中调用其他构造函数的格式:
this(参数列表)->就调用相应的构造函数。
小结:
tihs到底代表什么呢?
this就代表对象,即哪个对象调用了this所在函数,this就代表哪个对象。
如下例:
class Person
{
private String name;
private int age;
Person ()
{
}
//初始化姓名
Person(String n)
{
name=n;
}
//初始化姓名和年龄
Person(String n,int a)
{
this(n); // 调用一个字符串参数的构造函数。
//注意:调用其他构造函数的语句必须定义在构造函数的第一行。原因:初始化动作要先执行。
// name=n;
age=a;
}
}
public class test {
public static void main(String[] args)
{
Person p =new Person("chen",20);//对象创建时,必须会调用对应的构造函数。因为对象需要初始化。
}
}
注意:调用其他构造函数的语句必须定义在构造函数的第一行。
原因:初始化动作要先执行。
构造函数相互调用会出现递归现象,结果栈溢出。
this关键字的另一个作用:
用this标识哪个变量是成员变量。这个标识可以省略不写。
但是,当局部变量和成员变量同名时,必须用this来标识成员变量。