在Java中,构造函数用于在创建对象时初始化对象。构造函数的名称必须与类名相同,并且没有返回类型。当使用new关键字创建类的实例时,构造函数会被自动调用。
示例
java
class Person {
private String name;
private int age;
// 构造函数
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 获取姓名
public String getName() {
return name;
}
// 获取年龄
public int getAge() {
return age;
}
}
public class Main {
public static void main(String[] args) {
// 使用构造函数创建Person对象
Person person = new Person("张三", 20);
System.out.println("姓名: " + person.getName() + ", 年龄: " + person.getAge());
}
}
输出:
java
姓名: 张三, 年龄: 20
构造函数的类型
-
无参数构造函数:不接受任何参数的构造函数。
-
默认构造函数:如果类中没有定义任何构造函数,Java编译器会提供一个无参数的默认构造函数。
-
参数化构造函数:接受一个或多个参数的构造函数,用于根据传入的参数初始化对象的状态。
注意事项
-
如果在类中定义了自己的构造函数,则默认的无参数构造函数将不再提供。
-
可以在一个类中定义多个构造函数,这些构造函数通过参数列表的不同进行区分,这称为构造函数重载。
-
构造代码块可以用于给所有对象进行统一的初始化。
构造代码块
java
class Person {
private String name;
private int age;
// 构造代码块
{
System.out.println("新对象被创建");
}
// 构造函数
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
在上述代码中,每次创建Person类的新对象时,都会首先执行构造代码块中的代码,然后才是构造函数中的代码。这样可以确保每个对象在执行构造函数之前都执行了某些初始化操作。