📜  Java中的默认构造函数(1)

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

Java中的默认构造函数

在Java中,如果一个类没有定义构造函数,那么将自动提供一个默认的构造函数。这个默认构造函数不带任何参数,并执行空操作。如果你的类不需要任何构造函数,那么你就不用自己写一个默认构造函数。

默认构造函数的用途

默认构造函数的主要作用是用于在创建对象时进行一些初始化操作。在许多情况下,我们可能需要在对象创建时做一些初始化,例如给一些成员变量赋初始值,或者是连接某些资源。

比如下面这个简单的例子:

public class Person {
    private String name;
    private int age;
    
    // 默认构造函数
    public Person() {
        name = "unknown";
        age = 0;
    }
    
    // 其它方法省略
}

在这个例子中,我们定义了一个Person类,它有两个成员变量:nameage。我们还定义了一个默认构造函数,它给这两个成员变量赋了默认值。

怎样定义默认构造函数

如果你没有定义构造函数,那么编译器将自动提供一个默认的构造函数,它不带任何参数。如果你自己定义了构造函数,那么编译器将不再提供默认构造函数。

比如下面这个例子:

public class Person {
    private String name;
    private int age;
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    // 其它方法省略
}

在这个例子中,我们定义了一个Person类,它有两个成员变量:nameage。我们还定义了一个有参数的构造函数。这时,编译器将不再提供默认构造函数。

如果你不想让编译器提供默认构造函数,那么可以显式地定义一个没有参数的构造函数。比如:

public class Person {
    private String name;
    private int age;
    
    public Person() {}
    
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    // 其它方法省略
}

在这个例子中,我们定义了一个Person类,它有两个成员变量:nameage。我们显式地定义了一个没有参数的构造函数,并在其中什么都不做。这样,编译器就不会提供默认构造函数。

小结

默认构造函数是Java中的一个重要特性。如果你没有自定义构造函数,并且需要在对象创建时做一些初始化操作,那么可以通过默认构造函数来实现。如果你自己定义了构造函数,那么编译器将不再提供默认构造函数。