this的使用

this调用本类属性及方法

public Employee (String aName, double aSalary)
{
    name = aName;
    salary = aSalary;
}

参数变量会遮蔽同名的字段实例。例如:如果将参数命名为salary,salary将指示这个参数,而不是字段实例。但是,还是可以通过this.salary访问实例字段。

public Employee (String name, double salary)
{
    this.name = name;
    this.salary = salary;
}

this调用构造器

this也可以调用构造器。

构造器的一个语句形如this(...),这个构造器将调用同一个类的另一个构造器。

public Employee(double s)
{
    this("Employee #"+nextId, s);
    nextId++;
}

采用这种方式使用this关键字非常有用,这样对公共的构造器代码只需编写一次即可。

  • 可以在类的构造器中使用"this(形参列表)"的方式,调用本类中重载的其他的构造器!
  • 构造器中不能通过"this(形参列表)"的方式调用自身构造器
  • 如果一个类中声明了n个构造器,则最多有 n - 1个构造器中使用了"this(形参列表)"
  • "this(形参列表)"必须声明在类的构造器的首行
  • 在类的一个构造器中,最多只能声明一个"this(形参列表)"