IB Computer Science SL

B.3 面向对象编程

用对象建模状态

创建类、初始化实例,并维护对象规则。

示例使用 Python,当前 IB 课程也允许使用 Java。

对象结合状态与行为

类描述某类对象的属性和操作,实例保存具体状态。两个 Account 对象可以使用相同的方法,却有不同余额。初始化方法为每个对象建立起始状态。

下面的 deposit 操作拒绝非正金额。把验证放在操作内部,有助于保持“存款增加余额”的规则。在 Python 中,属性前的下划线表示非公开约定,并不强制实施访问保护。

class Account:
    def __init__(self):
        self._balance = 0

    def deposit(self, amount):
        if amount > 0:
            self._balance += amount

    def balance(self):
        return self._balance

account = Account()
account.deposit(20)
print(account.balance())

合理分配职责

预约对象可描述一条预约,预约服务则检查多条预约之间是否冲突。把所有任务放在一个大类中,会增加解释、测试和修改的难度。应通过对象关系表达模型。

测试每次操作前后的对象状态,包括被拒绝的操作。检查更新一个实例是否意外影响另一实例。类图应传达职责和关系,而不是逐行复制代码。

自我检测

创建两个账户后,给一个存款应同时更新两个账户吗?查看答案

不应。每个账户拥有独立的实例状态。共享状态需要明确的设计理由。

编写这些课程时使用的参考资料

我们在编写本课程时参考了这些官方文件,用以确定考纲结构和课程要求。

International Baccalaureate · 2027 年首次评估

此 PDF 为 IB 公开学科简介。完整学科指南与评估要求可通过学校或 IB 课程资源中心获取。