软件构造课程提纲
Posted zhangyushuqing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件构造课程提纲相关的知识,希望对你有一定的参考价值。
第三章
- 基本/对象数据类型
(1)基本数据类型:只有值,不可变,廉价,在栈中,使用时存在,无法实现表达的统一
(2)对象数据类型:继承自Object,有不同身份,有些可变,更昂贵,在堆中,等待垃圾回收,表达与泛型统一
- 静态/动态类型检查
(1)静态检查:代码运行之前,检查名称、语法、参数数量和类型、返回类型,优于动态检查
(2)动态检查:代码执行时,检查非法参数值、不可表示的返回类型、数组越界、空指针引用
- 可变性与不变性
(1)不变性:主要的设计原则
·不变数据类型创建完后,值不可修改(final),指定引用位置后,不可再次指定
·final class不能再被继承,final method不能被重写
·优点:可理解性强、易读、安全、不需要被防御性复制
(2)可变性:可以改变变量值,方便分享、方便作为全局变量
(3)例:String和StringBuilder
String t = s; t = t + “c”; 指向新对象
StringBuilder tb = sb; tb.append(“c”); 改变原来的值
- 值/引用的改变:改变引用是改变指针,改变值是在这个指针下改变对象内容
- 防御式复制:针对可变对象而言,返回一个复制的新对象,占用额外空间
- 快照图
(1)原始值快照图示例:
(2)对象快照图示例:
- 规格说明、前置/后置条件
(1)规格说明:名称、功能、参数、返回值
(2)前置条件(requires)是客户的任务,后置条件(effects)是实现者的义务,前置条件满足时,应满足后置条件,前置条件未满足时,后置条件无所谓。
(3)JavaDoc:
- 行为等价性:用一个实现代替另一个实现。为了使替代成为可能,需要一个规范来说明客户端依赖的内容,规范不应提及方法类的局部变量或私有字段。
- 规约的强度:若S2强于S1,要么前置条件弱,要么后置条件强
以上是关于软件构造课程提纲的主要内容,如果未能解决你的问题,请参考以下文章