创建类
创建带有不变量的类
使用私有字段、构造器、实例方法和独立对象状态。
示例使用 Java。可在这里阅读和追踪,在 Java 环境中运行;工作室执行的是伪代码。
封装状态
类定义一种类型,对象是它的一个实例。构造器建立初始状态。私有字段限制外部代码直接赋值,公共方法定义调用者可以请求的操作。
不变量是类承诺保持的条件。Counter 保证 value 非负;add 只接受正数,因此调用者不能通过它把值变成负数。每个 Counter 都有独立的实例字段。
public class Demo {
static class Counter {
private int value;
public Counter() { value = 0; }
public void add(int amount) {
if (amount > 0) { value += amount; }
}
public int getValue() { return value; }
}
public static void main(String[] args) {
Counter first = new Counter();
Counter second = new Counter();
first.add(3);
System.out.println(first.getValue());
System.out.println(second.getValue());
}
}区分实例成员与类成员
实例方法作用于特定的接收对象。static 方法属于类,没有隐式接收对象。static 字段由整个类共享;如果把 value 改为 static,示例中的计数器就会共享数值。
除了测试单个对象,也要测试两个对象。检查初始化、正常更新和应被拒绝的输入,并解释前置条件、后置条件以及哪些方法负责维持不变量。
自我检测
示例输出什么,为什么?查看答案
先输出 3,再输出 0。两个对象的实例字段独立,修改 first 不会更新 second。
编写这些课程时使用的参考资料
我们在编写本课程时参考了这些官方文件,用以确定考纲结构和课程要求。
College Board · 2025 年秋季起适用