10-面向对象-构造方法
构造方法也叫做构造器、构造函数。
作用:在创建对象的时候给成员变量进行初始化的。
✅ 一、构造方法的特点
特点 | 说明 |
---|---|
与类同名 | 构造方法的名称必须与类名相同 |
没有返回类型 | 构造方法没有返回值,甚至不能写 void |
自动调用 | 使用 new 创建对象时,会自动调用构造方法 |
可以重载 | 可以定义多个构造方法(构造方法重载) |
✅ 二、构造方法的分类
1. 无参构造方法(默认构造)
如果你不写,Java 会自动提供一个无参构造方法。
public class Person {String name;int age;// 无参构造public Person() {System.out.println("调用了无参构造方法");}
}
调用:
Person p = new Person();
2. 有参构造方法
可以在创建对象时直接传入参数来初始化成员变量。
public class Person {String name;int age;// 有参构造public Person(String name, int age) {this.name = name; // 用 this 解决成员变量与参数重名this.age = age;}void printInfo() {System.out.println("姓名: " + name + ", 年龄: " + age);}
}
调用:
Person p = new Person("张三", 20);
p.printInfo();
✅ 三、构造方法重载
你可以定义多个构造方法,只要参数列表不同:
public class Book {String title;double price;// 无参构造public Book() {this.title = "默认书名";this.price = 0.0;}// 一个参数的构造public Book(String title) {this.title = title;this.price = 0.0;}// 两个参数的构造public Book(String title, double price) {this.title = title;this.price = price;}void show() {System.out.println(title + " - " + price + "元");}
}
调用:
Book b1 = new Book();
Book b2 = new Book("Java入门");
Book b3 = new Book("深入Java", 88.8);b1.show();
b2.show();
b3.show();
✅ 四、使用 this(...)
调用其他构造方法(构造器链)
public class Person {String name;int age;// 构造器链public Person() {this("默认名", 0); // 调用有参构造}public Person(String name, int age) {this.name = name;this.age = age;}
}
注意:
this(...)
必须写在构造方法的第一行。