类是模板,对象是其实例;类定义属性和行为蓝图,对象拥有独立状态与内存地址;建模先找名词定类,再分析行为定方法;对象通过引用协作,类用访问控制确保数据安全。

类是模板,对象是根据这个模板造出来的具体实例。
类描述“是什么”,对象代表“哪一个”
类定义了一组属性和行为的蓝图,不占内存空间;对象是运行时创建的具体个体,有独立的内存地址和状态。比如 Person 类规定了人有姓名、年龄、会说话;而 new Person("张三", 25) 就是一个真实存在的对象。
从现实问题出发建模:先找名词,再定行为
分析需求时,先圈出关键名词——这些往往是潜在的类;再看它们之间怎么互动、各自能做什么——对应属性和方法。
- 例如开发图书管理系统,“图书”“读者”“借阅记录”是核心名词 → 可设计 Book、Reader、BorrowRecord 类
- 每本书有书名、ISBN、是否可借 → 这些是 Book 的字段
- 读者可以借书、还书 → 这些是 Reader 的方法,但实际逻辑可能委托给其他类处理(如借阅服务)
对象之间靠引用协作,不是复制数据
Java中对象变量存储的是堆内存中的地址值。多个变量可以指向同一个对象,修改其中一处会影响所有引用;而用 new 创建新对象,才会分配独立内存。
立即学习“Java免费学习笔记(深入)”;
比如:
Book b1 = new Book("Java编程", "978-1-234");
Book b2 = b1; // b2 和 b1 指向同一本对象
b2.setTitle("Java编程思想"); // b1.getTitle() 也会变成"Java编程思想"
Book b3 = new Book("设计模式", "978-5-678"); // 真正的新对象,独立存在
类负责统一约束,对象承载具体状态
类通过访问修饰符(private/public)、构造器、getter/setter 控制数据如何被使用;每个对象则保存自己的一份字段值,互不影响(除非共享静态字段)。
- 把姓名设为 private,强制通过 setName() 修改,就能在方法里加校验逻辑
- 年龄用 int 字段存,每个对象有自己的年龄值;而 static int totalPeople 是所有对象共用的计数器
不复杂但容易忽略:写类不是为了罗列功能,而是为了准确表达业务中的实体关系和职责边界。对象一创建,就该知道自己能做什么、依赖谁、状态是否合法。










