类是模板,对象是实例;类描述特征与行为但不占内存,对象是new创建的独立实体并占用堆内存,声明变量不等于创建对象。

类是设计图,对象是按图盖出来的房子——这句话就抓住了本质。
类:不是东西,是“怎么造东西”的说明书
它不占内存,也不干活,只描述一类事物该有什么特征(比如姓名、年龄)、能做什么事(比如学习、考试)。就像汽车图纸,上面写着“有四个轮子”“能启动”,但图纸本身不能开走。
写法上,用 class 关键字定义,里面放成员变量(属性)和成员方法(行为):
- 属性如 String name;、int age;
- 方法如 void study() { ... }
对象:图纸落地后的真实个体
只有用 new Student() 这一刻,JVM 才在堆内存里真真正正分配一块空间,生成一个可操作的实体。这个实体有自己的地址、自己的数据、自己的状态。
比如:
- Student s1 = new Student(); → 创建张三
- Student s2 = new Student(); → 创建李四
- 改 s1.name 不影响 s2.name,因为它们各自独立存着
声明 ≠ 创建:一个高频踩坑点
Student s; 这行代码只是在栈上划了个“空格”,准备将来放某个对象的地址;此时 s 的值是 null,没指向任何堆里的对象。直接调 s.study() 就会报 NullPointerException。
必须先 new,再赋值,再使用:
- Student s = new Student();
- s.name = "王五";
- s.study();
一句话总结关系
类是模板,只有一个;对象是实例,可以成百上千。类决定“能有什么、能做什么”,对象负责“现在是什么、正在做什么”。没有类,对象无从谈起;没有对象,类就是一张废纸。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











