Java 类与对象:实用指南
Java 类和对象
探索 Java 的类和对象模型如何将现实概念转化为可复用代码。
Java 根本上是面向对象的。它将复杂问题分解为可管理、自包含的实体 —— 对象,每个对象拥有状态和行为。
对象可以是任何持有数据 (状态) 和提供动作 (行为) 的事物。例如,一辆 自行车 有:
- 状态:空档、一档等。
- 行为:刹车、加速等。
深入对象前,先了解定义它们的蓝图:类。
Java 类
类是实例化对象的模板。可将其视为指定楼层、门、窗的房屋蓝图。同一蓝图可建多栋房屋,正如单个类可创建多个对象。
在 Java 中创建类
用 class 关键字定义类:
class ClassName {
// 字段
// 方法
}
字段 (变量) 保存对象状态,方法封装对象行为。
- 字段存储数据。
- 方法执行操作。
示例:Bicycle 类。
class Bicycle {
// 状态
private int gear = 5;
// 行为
public void braking() {
System.out.println("Working of Braking");
}
}
这里 Bicycle 是原型。可创建多个自行车实例,共享相同结构但持有独立数据。
注意:private 和 public 是控制可见性的访问修饰符。详见 Java 访问修饰符。
Java 对象
对象是类的实例。例如,Bicycle 是类,MountainBicycle、SportsBicycle、TouringBicycle 等是从该类派生的不同对象。
在 Java 中创建对象
用 new 关键字和类的构造器实例化对象:
className object = new className();
// 对于 Bicycle
Bicycle sportsBicycle = new Bicycle();
Bicycle touringBicycle = new Bicycle();
构造器是与类同名的特殊方法。详见 Java 构造器。
sportsBicycle 和 touringBicycle 等名称作为各自实例的引用。
同一类的多个实例可共存互不干扰。
注意:类的字段和方法统称为成员。
访问类的成员
用点运算符通过对象引用访问其成员:
class Bicycle {
int gear = 5;
void braking() {
// ...
}
}
Bicycle sportsBicycle = new Bicycle();
sportsBicycle.gear;
sportsBicycle.braking();
此处 sportsBicycle 访问 gear 字段并调用 braking() 方法。
- sportsBicycle.gear – 读取 gear 值。
- sportsBicycle.braking() – 调用刹车例程。
下一章将深入探讨 Java 方法。
示例:Java 类和对象
class Lamp {
// 记录灯是否亮
boolean isOn;
void turnOn() {
isOn = true;
System.out.println("Light on? " + isOn);
}
void turnOff() {
isOn = false;
System.out.println("Light on? " + isOn);
}
}
class Main {
public static void main(String[] args) {
Lamp led = new Lamp();
Lamp halogen = new Lamp();
led.turnOn();
halogen.turnOff();
}
}
输出:
Light on? true Light on? false
程序中 Lamp 定义实例变量 isOn 和两个操作它的方法。Main 类创建两个灯对象 —— led 和 halogen —— 并独立调用其方法。
每个对象持有自己的 isOn 副本,确保操作一个灯不影响另一个。
示例:在同一类中创建对象
对象也可在定义它们的同一类中实例化。方法如下:
class Lamp {
boolean isOn;
void turnOn() {
isOn = true;
System.out.println("Light on? " + isOn);
}
public static void main(String[] args) {
Lamp led = new Lamp();
led.turnOn();
}
}
输出
Light on? true
此模式适用于小型演示或主逻辑驻留在同一类的工具类。
java
- C++类与对象:面向对象编程实战指南
- Java 变量与字面量:全面指南
- 深入理解 Java final 关键字:变量、方法与类的不可变性
- Java instanceof 运算符完全指南:用法、继承与接口检查
- Java 抽象类与抽象方法完全指南
- 精通 Java 嵌套类与内部类:类型、示例与最佳实践
- 深入理解 Java 静态嵌套类:用法、差异与实战示例
- 精通 Java 匿名内部类:定义、语法与实战示例
- Java 单例模式详解:安全实现与使用指南
- 精通 Java 反射:运行时检查类、方法与字段
- 掌握 Java ObjectOutputStream:序列化、核心方法与实战示例
- 掌握 Java 泛型:构建可复用、类型安全的代码