软件构造 复习笔记四

ADT与OOP

ADT不变量

  1. 必须时刻保证是true,保证程序的正确性,防止表示泄露
  2. 由ADT自身负责与client端行为无关

AF(abstract Function)

满射,未必单射,未必双射

RI(Rep Invariants) 表示不变量

表示某个表示是否合法,表示所有表示值的一个子集

对inmmutable ADT
在A空间的abstract value应不变,内部R空间可变

检查不变量的三个标准

  1. established by creators and producers;(创建时确保)
  2. preserved by mutators and observers;(观察/改变时保持)
  3. no rep esposure
    利用参数中的ADT来维护pre-/post-conditions

ADT的一种实现技术-OOP(Object-oriented programming)

object
→state:fields
→behavior:methods

static→与class的实例相关
类成员变量→实例成员变量
类方法→实例方法

interface----定义ADT
class----实现ADT

封装与信息隐藏

  1. 使用接口类型声明变量
  2. 客户端仅仅使用接口声明定义的方法
  3. 客户端代码无法直接访问属性

继承和重写(Inheritance and overriding)

override

  1. 完全相同的参数列表,返回值
  2. 实际执行调用的方法运行过程决定

抽象类:至少包含一个抽象方法
抽象方法:必须没有实现体

三种多态

  1. 特殊多态
  2. 参数化多态
  3. subtyping(多类型多态,包含多态)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值