类是模板,对象是实例;类在方法区加载字节码、不占堆内存,对象用new创建、存于堆中且有独立地址和属性值。

类是模板,对象是实例——这是Java面向对象最根本的起点。类不占堆内存,只在方法区加载字节码;对象用 new 创建,实实在在存在于堆中,有独立地址和具体属性值。
类的定义:用 class 关键字声明蓝图
类是对一类事物的抽象,只描述“有什么”和“能做什么”,不表示具体个体。
- 语法结构:以 class 类名 { } 包裹成员变量(属性)和成员方法(行为)
- 类名首字母大写,如 Person、Car
- 属性通常用 private 修饰,配合 public getter/setter 控制访问
- 方法定义行为逻辑,可带参数、有返回值,也可 void
- 静态成员(用 static 修饰)属于类本身,被所有对象共享
对象的创建:用 new 实例化具体个体
对象是类的运行时实体,每个对象拥有自己的状态副本和行为能力。
- 基本写法:类名 对象名 = new 类名();
- new 过程会触发类的构造方法(无参或有参),完成初始化
- 对象通过“.”操作符访问属性(如 person.name)和调用方法(如 person.speak())
- 多个对象互不影响:修改 person1.age 不会影响 person2.age
关键区别:从设计到运行的两个层次
类是编译期概念,对象是运行期实体。它们不是并列关系,而是“定义与实现”、“图纸与成品”的关系。
- 类在 JVM 中只有一份定义(存于元空间),对象可无限创建(堆中各自独立)
- 类中属性只是类型声明(如 String name;),对象中才真正存值(name = "张三")
- 类的方法是统一逻辑模板,对象调用时才绑定具体数据执行
一个最小可运行例子
// 定义 Person 类
public class Person {
private String name;
private int age;
public void introduce() {
System.out.println("我是" + name + ",今年" + age + "岁");
}
}
// 创建并使用对象
Person p = new Person();
p.name = "李四";
p.age = 25;
p.introduce(); // 输出:我是李四,今年25岁
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











