教程中心 / Java教程 / 构造方法

构造方法

12分钟 面向对象

构造方法概述

构造方法(Constructor)用于创建对象时初始化对象。与普通方法不同,构造方法没有返回类型,且在创建对象时自动调用。

构造方法定义

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

    // 构造方法(与类名相同,无返回类型)
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

// 使用
Person p = new Person("张三", 25); 

默认构造方法

如果类中没有定义任何构造方法,编译器会自动生成一个无参的默认构造方法:

 public class Student {
    private String name;
    // 编译器自动生成: public Student() {}
}

// 使用默认构造方法
Student s = new Student(); 

注意:如果显式定义了构造方法,编译器不再生成默认构造方法。

构造方法重载

一个类可以有多个构造方法,只要参数列表不同:

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

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

    // 有参构造
    public Person(String name) {
        this.name = name;
        this.age = 0;
    }

    // 全参构造
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
} 

this调用

使用this()可以在构造方法中调用另一个构造方法:

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

// 使用this调用其他构造方法
public Person() {
    this("未知", 0);  // 调用上面的构造方法
} 

构造方法执行顺序

分配内存
初始化字段
执行构造方法

private构造方法

将构造方法设为private可以:

实现单例模式
阻止直接创建对象
强制通过静态方法获取实例

小结

  • 构造方法与类名相同,没有返回类型
  • 创建对象时自动调用
  • 可以重载多个构造方法
  • 使用this()调用其他构造方法
  • 定义了构造方法后,编译器不再生成默认构造方法
☕ Java 在线代码编辑器
📝 运行结果