软件构造-3

Java数据类型

静态类型检查范围:与类型相关,比如语法错误

动态类型检查范围:与值相关,比如非法的返回值

 

Final关键字对不可变引用提供了静态支持

 

在snapshot图中,不可变引用使用双箭头

 

正确的迭代删除方式

 

ADT操作的四种磊类型:

表示独立性(RI):

客户端实现ADT是无需考虑内部如何实现,ADT内部的变化不应该影响外部spec和客户端

除非ADT的操作指明了前置和后置条件,否则不能改变ADT的内部表示

不变量RI(rep invariant)

ADT中无论如何都成立的部分与与客户端的任何行为无关             

抽象函数(AF)必须是满射

 

ADT的注释应该包括RI,AF,safe from rep exposure

 

OOP的独特特性

 

封装和信息隐藏

继承和覆盖

多态性、子类型和重载

静态和动态调度

成分和代表团

 

类型隐藏

 

抽象类

重写和覆盖

子类可以重写父类中的方法,当父类方法是final时只能继承不能重写。子类可以调用super来使用父类中被重写的方法,调用父类的构造方法必须构造方法的第一行。

final类型的 field不可reassignment

final method 不可被overriding

final的class不可被extend

 

多态

一个函数可以有多个重名的实现

一个类型的名字可以代表多个类型

一个变量名字可以代表多个类的实例

 

重载

重载是在一个类中存在多个同名函数,

规则:

泛型

多态

一个函数可以 有多个同名的实现(方法重载)

一个类型名字可 以代表多个类型(泛型编程)

一个变量名字可以代表多个类的实例(子类型)

 

动态分配

动态分配其实就是在执行代码时,决定在多态中要执行哪个方法。主要分为编译阶段和执行阶段。在编译阶段在相对应的类中,寻找参数最匹配的方法。在执行阶段找到接受类,之后在类中找到对应方法。

重写equals方法需要具有自反,传递,对称性

重写hashcode方法: 17 和 31法则

 

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

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值