类是模板,不占内存也不执行操作;对象是类的实例,占用内存并能调用方法执行具体动作。一个类可创建多个独立状态的对象,类定义结构,对象体现具体值与行为。

类和对象不是一回事,但又分不开——类是“图纸”,对象是“按图纸造出来的房子”。刚学Java时容易混,其实抓住一点就清楚:类不能直接干活,对象才能做事。
类是模板,不是实物
类是一组属性(比如姓名、年龄)和方法(比如吃饭、走路)的集合描述,它不占内存空间,也不执行任何操作。就像建筑设计图,本身不能住人,但规定了房子该有什么门、几扇窗、用什么材料。
写法上,用 class 类名 { … } 定义,里面放成员变量和成员方法。它不运行,只是为后续创建对象做准备。
对象是实例,能动起来
对象是用 new 类名() 创建出来的具体个体,它在内存中真实存在(堆区),有自己的一套属性值,也能调用方法真正执行动作。
立即学习“Java免费学习笔记(深入)”;
比如:
Person p1 = new Person();
这行代码做了三件事:声明变量 p1、在堆里造出一个 Person 实例、把实例地址赋给 p1。之后你就能写 p1.eat(); 或 p1.name = "小明"; ——只有对象才能这样用。
关键区别一目了然
- 类没有内存实体,对象有;
- 类定义“有哪些字段、能干啥”,对象体现“这个字段现在是多少、现在正在干啥”;
- 一个类可以 new 出无数个对象,每个对象状态独立(比如 p1.age=20,p2.age=25,互不影响);
- 类名首字母大写(如 Student),对象名小驼峰(如 stu1);
- 类里不能直接写执行语句(比如 System.out.println),对象通过方法调用才触发执行。
类和对象的关系,就像模具和铸件
一个模具(类)可以反复压出多个铸件(对象)。铸件外形一样(都符合模具定义),但每件有自己的编号、重量、表面划痕——对应每个对象有自己的属性值和状态。改模具会影响以后所有新铸件,但不会改变已经造好的旧铸件。
基本上就这些。










