软件构造知识点复习:数据类型+spec+ADT(上)

数据类型与类型检查

{ 静 态 类 型 检 查 : 语 法 错 误 ( 类 名 , 函 数 名 , 参 数 的 数 目 / 类 型 , 返 回 值 ) 动 态 类 型 检 查 : 非 法 参 数 , 非 法 返 回 值 , n u l l , 数 组 越 界 \left\{ \begin{array}{c} 静态类型检查:语法错误(类名,函数名,参数的数目/类型,返回值) \\ 动态类型检查:非法参数,非法返回值,null,数组越界\end{array}\right. {/null
{ 基 本 数 据 类 型 : i n t , l o n g , b o o l e a n , c h a r , b y t e , s h o r t , f l o a t 对 象 数 据 类 型 : S t r i n g , B i g I n t e g a r , 基 本 数 据 类 型 的 包 装 ( I n t e g e r , B o o l e a n … … ) \left\{ \begin{array}{c} 基本数据类型:int,long,boolean,char,byte,short,float\\ 对象数据类型:String,BigIntegar,基本数据类型的包装(Integer,Boolean……)\end{array}\right. {intlongbooleancharbyteshortfloatStringBigIntegar(IntegerBoolean)
基本数据类型与对象数据类型
重载overload:操作名称一样,输入参数不同
{ 静 态 类 型 语 言 : 编 译 时 检 查 动 态 类 型 语 言 : 运 行 时 检 查 \left\{ \begin{array}{c} 静态类型语言:编译时检查 \\ 动态类型语言:运行时检查\end{array}\right. {

immutable与mutable

{ 可 变 数 据 类 型 : S t r i n g B u i l d e r , D a t e , 数 组 不 可 变 数 据 类 型 : S t r i n g , 基 本 数 据 类 型 与 它 们 的 封 装 \left\{ \begin{array}{c} 可变数据类型:StringBuilder,Date,数组 \\ 不可变数据类型:String,基本数据类型与它们的封装\end{array}\right. {StringBuilderDateString
不可变数据类型:

  1. 指向的空间所存的数据不可改变
  2. 关键字final:指向的地址不再改变
  3. 问题:垃圾回收

可变数据结构:
4. 防御使拷贝:return new
在这里插入图片描述迭代器:Iterator
介绍:List,Set,Map
可变→不可变:Collections.unmodifiableList/Set/Map
注:只能看和读,可以改变封装之前的值改变它的值

spec

spec:
{ 输 入 输 出 , 数 据 类 型 功 能 和 正 确 性 性 能 \left\{ \begin{array}{c} 输入输出,数据类型 \\ 功能和正确性\\ 性能\end{array}\right.
行为等价:基于spec的,再某一soec条件下,效果一样
spec:
{ 前 置 条 件 : p e r c o n d i t i o n ( @ p a r a m ) 后 置 条 件 : p o s t c o n d i t i o n ( @ r e t u r n , @ t h r o w s ) \left\{ \begin{array}{c} 前置条件:percondition(@param) \\ 后置条件:postcondition(@return,@throws)\end{array}\right. {percondition@parampostcondition@return@throws
fail fast
spec强度,强于S2>S1同时满足以下条件(其中一个相同):

  1. S2的前置条件更弱
  2. 在S1的前置条件下,S2的后置条件更强
    此时S2可以替代S1(用户喜欢强的,程序员喜欢弱的,强的图更小)

ADT

{ 构 造 器 ( C r e a t o r s ) : 从 无 到 有 生 产 器 ( P r o d u c e r s ) : 根 据 旧 的 返 回 新 的 观 察 器 ( O b s e r v e r s ) : 返 回 参 数 变 值 器 ( M u t a t o r s ) : 只 有 m u t a b l e 才 有 , 唯 一 可 以 是 v o i d 的 , 更 改 数 据 \left\{ \begin{array}{c} 构造器(Creators):从无到有\\ 生产器(Producers):根据旧的返回新的\\ 观察器(Observers):返回参数\\ 变值器(Mutators):只有mutable才有,唯一可以是void的,更改数据\end{array}\right. (Creators)(Producers)(Observers)(Mutators)mutablevoid
表示独立性:内部的参数独立

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值