构造函数(Constructor)在Java中是一种特殊类型的方法,用于初始化新创建的对象。构造函数的名称必须与类名完全相同,并且不具有任何返回类型(甚至没有void)。

构造函数在创建对象时被自动调用。你可以在构造函数中设置对象的初始状态,例如初始化字段值。

以下是构造函数的一些特性:

  1. 无参数构造函数:如果一个类中没有定义任何构造函数,编译器会自动提供一个无参数的默认构造函数。
  2. 带参数的构造函数:你可以定义带参数的构造函数来初始化具有特定值的对象。
  3. 构造函数重载:一个类可以有多个构造函数,只要它们的参数列表不相同即可。这称为构造函数的重载。
  4. 调用其他构造函数:你可以使用this关键字从一个构造函数调用另一个构造函数。这必须是构造函数中的第一个语句。

示例

以下代码展示了一个Person类,其中包括了上述特性的示例:

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

    // 无参数的构造函数
    public Person() {
        this.name = "未知";
        this.age = 0;
    }

    // 带参数的构造函数
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 只有一个参数的构造函数
    public Person(String name) {
        // 调用另一个构造函数
        this(name, 0);
    }

    // 其他方法
    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

// 创建Person对象的示例
Person person1 = new Person();            // 使用无参数构造函数
Person person2 = new Person("Alice", 25); // 使用带参数构造函数
Person person3 = new Person("Bob");       // 使用一个参数的构造函数

构造函数使你能够更灵活地控制对象的创建和初始化过程,确保对象始终处于有效和一致的状态。