Skip to content
第 14 / 250 章后端⏱ 10 分钟阅读

第 14 章:类的定义与对象创建

学习目标

  • 掌握类的完整定义语法
  • 理解对象的创建过程和内存模型
  • 区分成员变量和局部变量

一、类的完整定义

java
/**
 * 学生类(文档注释)
 *
 * @author taskflow
 * @since 1.0.0
 */
public class Student {                           // ① public class,类名 UpperCamelCase

    // ============ 字段(成员变量)============
    public String name;                         // ② 字段
    private int age;                            // ③ private 封装字段

    // ============ 构造器 ============
    public Student() {                          // ④ 无参构造器
        System.out.println("无参构造器");
    }

    public Student(String name, int age) {     // ⑤ 有参构造器(重载)
        this.name = name;
        this.age = age;
    }

    // ============ 方法 ============
    public void printInfo() {                  // ⑥ 实例方法
        System.out.println("姓名: " + name + ", 年龄: " + age);
    }

    public int getAge() {                      // ⑦ getter
        return age;
    }

    public void setAge(int age) {              // ⑧ setter
        if (age < 0 || age > 150) {
            throw new IllegalArgumentException("年龄不合法");
        }
        this.age = age;
    }
}

二、对象的创建过程

2.1 new 关键字做了什么?

java
Student s = new Student("张三", 18);

2.2 内存模型

三、成员变量 vs 局部变量

维度成员变量局部变量
声明位置类体内方法 / 代码块内
默认值无(必须初始化)
内存位置堆(对象)
作用域整个类方法 / 块内
生命周期对象存在期间方法执行期间
java
class User {
    String name;          // ① 成员变量:有默认值 null
    int age;              // ② 成员变量:有默认值 0

    public void register(String username) {  // ③ username 是参数(局部变量)
        String password = "123456";          // ④ 局部变量:必须初始化
        int retryCount = 0;                  // ⑤ 局部变量

        if (username != null) {
            String message = "注册成功";      // ⑥ 块局部变量:只在 if 内可见
            System.out.println(message);
        }
        // System.out.println(message);     // ❌ 块外不可访问
    }
}

四、对象数组

java
Student[] students = new Student[3];  // ① 创建 3 个 null 引用
students[0] = new Student("张三", 18);
students[1] = new Student("李四", 20);
students[2] = new Student("王五", 22);

for (Student s : students) {
    s.printInfo();
}

⚠️ new Student[3] 只是创建了 3 个 null 引用,还没有 Student 对象

五、本章小结

要点关键
类定义class 关键字,包含字段、构造器、方法
对象创建new 关键字,分配堆内存
内存模型引用在栈,对象在堆
成员变量在类内,有默认值
局部变量在方法内,必须初始化

动手练习

练习 1:基础题

定义一个 Car 类,包含字段 brandcolorspeed,方法 accelerate()brake()printInfo()

练习 2:进阶题

创建一个 Car 对象数组,模拟车队:

java
Car[] garage = { new Car("Toyota", "Red"), new Car("BMW", "Black") };

下一章第 15 章:构造器与 this 关键字

本站基于 VitePress 构建 · 由 Codebook 团队维护