软件构造系列复习笔记(2)————第3章

第3章

这里写图片描述

基本数据类型、对象数据类型

这里写图片描述

这里写图片描述

这里写图片描述

一些操作被重载,因为同样的操作名可用于不同的数据类型。

静态类型检查、动态类型检查

这里写图片描述

这里写图片描述

静态类型检查:可在编译阶段发现错误,避免了将错误带入到运行阶段,可提高程序正确性/健壮性。
这里写图片描述

这里写图片描述

静态检查:关于“类型”的检查,不考虑值。
动态检查:关于“值”的检查。

Mutable/Immutable

这里写图片描述

这里写图片描述

所以,尽量使用final变量作为方法的输入参数、作为局部变量。 final表明了程序员的一种“设计决策”。
这里写图片描述

不变对象:一旦被创建,始终指向同一个值/引用;
可变对象:拥有方法可以修改自己的值/引用。

值的改变、引用的改变

这里写图片描述

这里写图片描述

这里写图片描述

使用不可变类型,对其频繁修改会产生大量的临时拷贝(需要垃圾回收)。
可变类型最少化拷贝以提高效率。
使用可变数据类型,可获得更好的性能,也适合于在多个模块之间共享数据。
但是,不可变类型更“安全”,在其他质量指标上表现更好。
这里写图片描述
这里写图片描述

防御式拷贝

这里写图片描述
安全的使用可变类型:局部变量,不会涉及共享;只有一个引用。
如果有多个引用(别名),使用可变类型就非常不安全。

这里写图片描述
这里写图片描述

Snapshot diagram

a code-level, run-time, and moment view
这里写图片描述

不可变对象:用双线椭圆。
不可变的引用:用双线箭头。
引用是不可变的,但指向的值却可以是可变的。
可变的引用,也可指向不可变的值。

这里写图片描述

这里写图片描述

List:
这里写图片描述

Set:
这里写图片描述

Map:
这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

Specification、前置/后置条件

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

行为等价性

站在客户端视角看行为等价性。
这里写图片描述
这里写图片描述
这里写图片描述

规约的强度

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

ADT操作的四种类型

ADT是由操作定义的,与其内部如何实现无关!
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

表示独立性

这里写图片描述

不变量、表示不变量RI

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

表示泄漏

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

表示空间、抽象空间、AF

这里写图片描述
这里写图片描述
这里写图片描述

以注释的形式撰写AF、RI

这里写图片描述
这里写图片描述
即使是同样的R、同样的RI,也可能有不同的AF,即“解释不同”。
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

接口、抽象类、具体类

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
接口:确定ADT规约。
类:实现ADT。

这里写图片描述
这里写图片描述

继承、override

这里写图片描述
这里写图片描述
这里写图片描述
重写的时候,不要改变原方法的本意。

多态、overload

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

泛型

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

等价性equals()和==

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

equals()的自反、传递、对称

这里写图片描述
这里写图片描述

hashCode()

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

可变对象的观察等价性、行为等价性

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值