575 字
1 分钟
JAVA构造方法与对象的创建QAQ
一、构造方法(Constructor)
1. 定义
构造方法是 一种特殊的方法,主要作用是 在创建对象时对对象进行初始化。
构造方法的名字必须和类名相同,且没有返回值(连 void 也不能写)。
2. 特点
- 方法名与类名相同;
- 没有返回值类型声明;
- 可以有参数,也可以没有参数;
- 可以重载(即同一个类中定义多个不同参数列表的构造方法)。
3.构造方法的类型
1.无参构造方法(默认构造方法)
- 如果类中没有显式定义构造方法,编译器会自动提供一个无参构造方法。
- 一旦你自己写了构造方法,系统不会再自动生成。
class Student { String name; int age;
// 无参构造 Student() { name = "未命名"; age = 18; }}2.有参构造方法
- 用来在创建对象时直接赋初始值。
class Student { String name; int age;
// 有参构造 Student(String n, int a) { name = n; age = a; }}二、对象的创建
在 Java 中,对象是通过 new 运算符 来创建的。
基本格式:
类名 对象名 = new 类名(参数列表);1. 创建过程
当执行 new 类名() 时,底层大致经历以下步骤:
- 在堆内存中分配空间;
- 调用构造方法初始化成员变量;
- 返回对象在堆内存中的引用地址,赋值给引用变量。
2. 示例
public class Test { public static void main(String[] args) { // 调用无参构造 Student s1 = new Student(); System.out.println(s1.name + " - " + s1.age);
// 调用有参构造 Student s2 = new Student("张三", 20); System.out.println(s2.name + " - " + s2.age); }}输出:
未命名 - 18张三 - 20Java 对象创建流程
假设代码如下:
Student s = new Student("张三", 20);3. 内存示意图
┌───────────────────────────┐ │ 方法区 (Method Area) │ │ ───────────────────────── │ │ 类信息: Student │ │ - 构造方法 │ │ - 成员变量定义 │ │ - 方法代码 │ └───────────────────────────┘
┌───────────────────────────┐ 栈 (Stack) │ 局部变量区 │ │ ───────────────────────── │ │ s ────────┐ │ └─────────────│─────────────┘ │ 引用地址 ▼
┌───────────────────────────┐ 堆 (Heap) │ Student 对象实例 │ │ ───────────────────────── │ │ name = "张三" │ │ age = 20 │ └───────────────────────────┘📌 理解要点:
- 类加载 → 类的信息(构造方法、属性定义)放在 方法区。
- new Student(…) → 在 堆 中开辟内存,创建对象。
- 引用变量 s → 在 栈 中存储对象在堆中的地址。
- 通过
s.name/s.age就能访问堆里的实际数据。
三、this关键字与构造方法
在构造方法中经常用 this:
-
区分成员变量和局部变量同名冲突。
Student(String name, int age) {this.name = name;this.age = age;} -
一个构造方法调用另一个构造方法(必须写在第一行)。
Student() {this("未命名", 18); // 调用有参构造}
四、小结
- 构造方法:类名相同、无返回值、可重载。
- 对象创建:通过
new调用构造方法,完成初始化。 - this:在构造方法中常用来引用当前对象,或调用其它构造方法。
JAVA构造方法与对象的创建QAQ
https://csa.fur1na.top/posts/java构造方法与对象的创建qaq/ 部分信息可能已经过时









