📜  在构造函数 java 中调用 this(1)

📅  最后修改于: 2023-12-03 15:08:03.573000             🧑  作者: Mango

在构造函数 Java 中调用 this

在 Java 中,构造函数是一种特殊的方法,用于初始化对象的实例变量。在构造函数中调用 this 关键字可以让程序员很方便地重载构造函数。

使用 this 关键字

在 Java 中,this 关键字代表当前对象的引用。当你在构造函数中使用 this,它将会调用当前类的另一个构造函数。这个构造函数需要和当前构造函数在参数的个数和类型上一致,然后将当前类的实例变量初始化。下面是个示例:

public class Person {
  private String name;
  private int age;

  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }

  public Person(String name) {
    this(name, 0);
  }
}

上述代码中,我们定义了一个 Person 类,它有两个构造函数。第一个构造函数需要两个参数,用于初始化 Person 对象的 name 和 age 属性。第二个构造函数只需要一个参数 name,在构造函数中调用了 this(name, 0)。这个语句相当于调用了第一个构造函数,并将 age 设置为 0。

使用 this 在构造函数之间传递参数

有时,我们希望在一个构造函数中调用当前类的另一个构造函数,并传递一些参数。这可以通过使用 this 关键字和参数列表实现。这时候调用的构造函数必须在参数列表上有对应的签名。下面是一个具体的例子:

public class Employee {
  private String name;
  private int age;
  private double salary;

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

  // 构造函数重载
  public Employee(String name, int age) {
      this(name, age, 0.0);
  }
}

在上面的示例中,我们用了两个不同的构造函数来初始化对象。第一个构造函数需要三个参数:name,age 和 salary。第二个构造函数只需要两个参数:name 和 age。这时我们传递给第二个构造函数的 salary 是 0.0。

总结

在 Java 中,使用 this 关键字可以很方便地重载构造函数,并且在构造函数之间传递参数。这可以大大减少代码量,同时增加了程序的可读性。

参考资料