AP Computer Science A

创建类

创建带有不变量的类

使用私有字段、构造器、实例方法和独立对象状态。

示例使用 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 年秋季起适用