- 博客(9)
- 资源 (3)
- 收藏
- 关注
原创 (软件构造)LSP 里氏替换原则
行为子类型LSP1. 子类型可以增加方法,但不能删除原有方法2. 子类型要实现抽象类型中的所有方法3. 子类型重写方法必须要有相同或子类型的返回值,或者符合协变类型4. 子类型重写方法必须有相同类型参数或者符合协变类型的参数5. 子类型重写方法不能抛出额外的异常对于指定行为和方法则需要1. 有更强的不变量RI2. 有更弱的前置条件3. 更强的后置条件LSP 强行为子类型化:1. 前置条件不能强化2. 后置条件不能弱化3. 不变量要保持4. 子类型方法参数:逆变5. 子类型方法返回值:协变6. 子类型不能触发
2022-06-13 15:53:52 106 1
原创 (软件构造)java中的对象类型转换
1. 向上转型首先看一个例子:在上面的例子中,平行四边形继承了四边形类,四边形类中有一个draw()方法,它的参数是Quadrangle类型,而在四边形类的主方法调用却是Parallelogram类型。这里说明了一个问题,平行四边形也是四边形类的。所以这句话就等价于 Quadrangle obj = new Parallelogram(); 就是把子类型赋值给父类型变量,这种技术就叫做向上转型,父类定义的方法完成各个子类的功能,这样就可以使同一份代码无差别的运用到不同类型上,这也是多态的基本思
2022-06-13 15:40:44 85
原创 (软件构造)表示不变量RI和AF
1. 表示独立性 client使用ADT时无需考虑内部如何实现,ADT内部表示的变化不应影响外部spec与client 除非ADT的操作指明了具体的pre-condition和post-condition,否则不能改变ADT的内部 表示,因为spec规定了client和和implementer之间的契约。2. 测试ADT的方法: (1)测试creators,producers和mutators:调用observers来观察这些operations的结
2022-06-09 22:15:27 111
原创 (软件构造)面向过程与面向对象
其实刚开始接触面向对象编程的时候,对于面向对象这种关系我实在没搞懂,一直等我接触了一些具体实现的时候才能逐渐理解面向对象到底是什么意思面向对象,跟我们之前学的c语言面向过程不同,面向过程在我的理解中,可以把它看作是一个具体问题分析的流程,什么时候要干什么事情是有一套具体的流程的,这些流程都最终由main函数确定好,而流程的具体实现则需要你利用定义具体的方法,按步骤实现,这种情况其实更适合一个算法的实现,比如要实现一个图的深度优先搜索,什么时候定义栈,什么时候构造图的数据类型,什么时候将图的点放到栈中并开
2022-06-05 18:06:13 324
原创 (软件构造)关于java接口
Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现
2022-06-05 16:19:38 60
原创 (软件构造)2022哈工大软件构造 lab2内容以及心得
2022年春季学期计算学部《软件构造》课程Lab 2实验报告 姓名 艾浩林 学号 120L021917 班号 2003006 电子邮件 [email protected] 手机号码 18891201338 目录1 实验.....
2022-05-31 08:24:24 172
原创 HIT 软件构造 Lab1
2022年春季学期计算学部《软件构造》课程Lab 1实验报告 姓名 艾浩林 学号 120L021917 班号 2003006 电子邮件 [email protected] 手机号码 18891201338 目录1 实验...
2022-05-31 08:14:01 92
原创 哈工大 csapp大作业 120L021917
计算机系统大作业题 目 程序人生-Hello’s P2P 专 业 计算学部 学 号 120L021917 班 级 2003006 学 生 艾浩林 指 导 教 师 吴锐 ...
2022-05-22 19:27:10 329
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人