1. 类(Class):对象的蓝图
定义与作用
- 类是现实实体的代码抽象,用于定义对象的数据结构(属性) 和行为逻辑(方法)。
- 如同建筑图纸决定房屋结构,类决定对象的内部构造与功能。
核心组成
public class Person {
// 字段(属性)
private String name;
private int age;
// 构造函数
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 方法(行为)
public void introduce() {
System.out.println("Hi, I'm " + name);
}
}
- 字段:存储对象状态(如
name,age)。 - 构造函数:初始化对象(与类同名,无返回值)。
- 方法:定义对象行为(如
introduce())。
类模板示意图

2. 对象(Object):类的实例
特性与创建
-
对象是类的具体实现,每个对象拥有独立的状态(属性值)但共享行为逻辑(方法)。
-
通过
new关键字实例化:
Person john = new Person("John", 22); // 创建对象 john.introduce(); // 调用方法 → 输出:"Hi, I'm John"
对象独立性
-
相同类 → 不同对象:
Person mary = new Person("Mary", 28); // 独立对象,属性值不同 -
每个对象的内存空间独立,修改
john的属性不影响mary。
3. 构造函数:对象初始化器
关键作用
-
确保对象创建时属性被正确初始化,避免无效状态(如
age=0)。 -
两种类型:
类型 特点 示例 默认构造函数 无参数,自动生成(若未定义) Person p = new Person();参数化构造函数 接收参数定制对象初始状态 Person p = new Person("Alice", 30);
参数化构造函数示例
public Person(String name, int age) {
this.name = name; // this.name:引用实例变量
this.age = age; // name:构造函数参数
}
使用场景
-
创建对象时直接注入属性值:
Person harry = new Person("Harry", 35); // 一步完成初始化
4. 作用域与this关键字
变量作用域规则
| 变量类型 | 可见范围 | 生命周期 |
|---|---|---|
| 局部变量 | 仅在声明的方法内 | 方法开始 → 方法结束 |
| 实例变量 | 类内所有方法 | 对象创建 → 对象销毁 |
变量遮蔽(Shadowing)问题
-
当局部变量与实例变量同名时,局部变量优先:
public void setName(String name) { name = name; // ❌ 错误:局部变量name自赋值 this.name = name; // ✅ 正确:this.name指向实例变量 }
this关键字的用途
- 解决变量遮蔽(如上例)。
- 调用其他构造函数(如
this())。 - 传递当前对象(如
obj.method(this))。
5. 综合实践:LED类示例
类设计
public class LED {
private boolean isOn; // 状态属性
private String color; // 颜色属性
// 参数化构造函数
public LED(String color) {
this.isOn = false;
this.color = color;
}
// 行为方法
public void turnOn() {
if (!isOn) isOn = true;
}
public String getColor() {
return color;
}
}
对象使用
LED redLED = new LED("red"); // 创建红色LED对象
redLED.turnOn(); // 调用方法改变状态
System.out.println(redLED.getColor()); // 输出:"red"
6. 核心概念总结
| 概念 | 核心要点 |
|---|---|
| 类(Class) | 对象的模板,定义属性和方法。 |
| 对象(Object) | 类的实例,拥有独立属性值,共享方法逻辑。 |
| 构造函数 | 初始化对象属性,确保对象有效状态。 |
| this关键字 | 解决变量遮蔽,明确指向当前对象的实例变量。 |
| 作用域 | 局部变量(方法内) vs 实例变量(对象生命周期)。 |
关键认知:
- 类是静态定义,对象是动态实体。
- 通过
new实例化对象时,JVM为对象分配独立内存空间,存储属性值。- 方法代码在内存中仅存一份,被所有对象共享(节省内存)。
通过结合类与对象的设计,Java实现了对现实世界的高度抽象与灵活建模。

被折叠的 条评论
为什么被折叠?



