一个类是一个蓝图;一个对象是从它创建的实例。一个构造函数是一个特殊的方法,用于初始化新对象。它们共同构成了 Java 面向对象模型的基础。
定义带有构造函数的类
java
{
String name;
age;
{
.name = name;
.age = age;
}
String {
+ name;
}
}
当你创建对象时构造函数会运行,设置其初始状态。this 指向当前对象,区分字段和同名参数。
Person p = new Person("Ann", 30); // `new` allocates the object + calls the constructor
p.greet(); // "Hi, I'm Ann"
new 关键字在堆上分配内存并调用构造函数;p 持有对新对象的引用。
public class Person {
private String name;
private int age;
public Person(String name, int age) { // primary constructor
this.name = name;
this.age = age;
}
public Person(String name) { // overloaded — different parameters
this(name, 0); // calls the other constructor (chaining)
}
}
你可以有多个构造函数,带有不同的参数列表(重载),并且其中一个可以用 this(...) 调用另一个以避免重复初始化。
public class Empty {
// no constructor defined → Java provides an implicit no-arg constructor
}
Empty e = new Empty(); // works
// BUT: once you define ANY constructor, the implicit one is gone
如果你不写任何构造函数,Java 会提供一个无参数的默认构造函数。一旦你定义了任何构造函数,那个默认构造函数就消失了(如果需要的话你必须显式添加它)。
类、对象和构造函数是 Java 编程的绝对基础——你构建的一切都由从类创建的对象组成。
理解构造函数如何初始化状态(this、new 关键字的作用、为了灵活创建的构造函数重载和链接,以及默认构造函数规则)对于正确创建和初始化对象至关重要。
这些概念支撑着 Java 中的所有面向对象工作,而构造函数行为(特别是消失的默认构造函数和链接)是面试问题和真实错误的常见来源。