类是抽象模板,不占堆内存;对象是具体实例,创建时在堆中分配独立内存。类定义共性属性与方法,对象拥有独立字段值并共享类中方法代码。

类是模板,对象是实例。类定义了“一类事物”的结构和行为(比如属性和方法),而对象是根据这个模板创建出来的具体个体(比如“张三”这个人、一辆具体的“宝马X5”)。没有类,就无法创建对象;没有对象,类就只是纸上蓝图,不占用内存。
类是抽象的、静态的,它不占内存空间(编译时存在,运行时不占堆内存)。它描述了所有同类对象共有的特征:
类本身不能直接使用功能,就像你不能用“汽车设计图”去开车。
对象是动态的、实际存在的,创建时(用new)会分配内存(在堆中),每个对象有自己独立的一份属性值:
立即学习“Java免费学习笔记(深入)”;
Easily find JSON paths within JSON objects using our intuitive Json Path Finder
193
此时p1和p2是两个不同对象:他们名字不同、年龄不同,但都具备speak()和walk()的能力——这些能力来自类,而数据属于各自对象。
想象一个工厂流水线:
┌───────────────┐
│ Person类 │ ← 抽象模板(不占运行内存)
├───────────────┤
│ - name: String │
│ - age: int │
│ │
│ + speak() │
│ + walk() │
└───────────────┘
↓ new
┌─────────────────┐ ┌─────────────────┐
│ p1对象 │ │ p2对象 │
├─────────────────┤ ├─────────────────┤
│ name = "张三" │ │ name = "李四" │
│ age = 25 │ │ age = 30 │
│ [speak()代码复用] │ │ [speak()代码复用] │
└─────────────────┘ └─────────────────┘
↑内存中真实存在 ↑内存中另一个真实存在
类是类型(type),用于声明变量和创建对象;对象是值(value),是程序运行时真正参与操作的数据实体。你可以声明Person p;(只定义类型),但必须p = new Person(...);才真正诞生一个对象。
基本上就这些。不复杂,但容易忽略“类不占堆内存”和“方法共用、字段独立”这两个核心点。
以上就是Java OOP中类与对象有什么区别_类与对象的关系图示讲解的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号