java如何构造方法
构造方法的定义
在Java中,构造方法是一种特殊的方法,用于初始化对象。构造方法的名称必须与类名完全相同,且没有返回类型(包括void)。
构造方法的语法
public class ClassName {
// 无参构造方法
public ClassName() {
// 初始化代码
}
// 带参构造方法
public ClassName(DataType param1, DataType param2) {
// 使用参数初始化对象
}
}
构造方法的特点
- 构造方法在创建对象时自动调用,无法手动调用。
- 如果没有显式定义构造方法,Java会提供一个默认的无参构造方法。
- 如果定义了带参构造方法,且未定义无参构造方法,则无法直接调用无参构造方法创建对象。
构造方法的重载
可以在一个类中定义多个构造方法,只要参数列表不同即可(方法重载)。
public class Person {
private String name;
private int age;
// 无参构造方法
public Person() {
this.name = "Unknown";
this.age = 0;
}
// 带参构造方法(初始化name)
public Person(String name) {
this.name = name;
this.age = 0;
}
// 带参构造方法(初始化name和age)
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
使用this调用其他构造方法
可以在一个构造方法中使用this()调用同一类的另一个构造方法,以减少重复代码。

public class Person {
private String name;
private int age;
public Person() {
this("Unknown", 0); // 调用带参构造方法
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
构造方法与继承
- 子类构造方法默认会调用父类的无参构造方法(
super())。 - 如果父类没有无参构造方法,子类必须显式调用父类的带参构造方法(
super(param1, param2))。
public class Student extends Person {
private String school;
public Student(String name, int age, String school) {
super(name, age); // 调用父类构造方法
this.school = school;
}
}






