2020.03.27软件构造听课笔记

ADT的规约里也不应该谈及任何内部表示的细节,以及R空间中的任何值
ADT的内部表示(私有属性)对外部都应该严格不可见
故在代码中以注释的形式写出AF和RI而不能在Javadoc文档中,防止被外部看到而破坏表示独立性/信息隐藏

在对象的初始状态不变量为true,在对象发生变化是,不变量也要为true
构造器和生产器在创建对象是要确保不变量为true
变值器和观察器在执行时必须保持不变性
在每个方法return之前,用checkRep()检查不变量是否得以保持

表示泄露的风险:一旦泄露,ADT内部表示可能会在程序的任何位置发生改变(而不是限制在ADT内部),从而无法确保ADT的不变量是否能够始终保持为true

用ADT不变量取代复杂的Precondition,相当于将复杂的precodition封装到了ADT内内部

类成员变量,类方法,使用static,即要声明某个变量或方法是属于类的,就在前面加static

静态方法无法调用非静态成员(方法和变量)

静态方法是可以通过类的名字直接调用的,非静态方法要先声明一个对象,再调用

interface(接口)

接口中只有方法定义,没有实现,需要通过类来实现

interface和class:定义和实现ADT
接口之间可以继承与扩展
一个类可以实现多个接口(从而具备了多个接口中的方法)
一个接口可以有多种实现类

接口中不可以有构造函数

接口:确定了ADT的规约; 类:实现了ADT
实现ADT时,也可以不需要接口,直接使用类作为ADT,即有ADT定义也有ADT实现
实际中更倾向于使用接口来定义变量

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值