B.3 面向对象编程
用对象建模状态
创建类、初始化实例,并维护对象规则。
示例使用 Python。HL 路径包含 SL 之外的额外课程。
对象结合状态与行为
类描述某类对象的属性和操作,实例保存具体状态。两个 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 课程资源中心获取。