软件构造第二阶段课程总结(下)

阅读: 评论:0

软件构造第二阶段课程总结(下)

软件构造第二阶段课程总结(下)

依据三个实验的知识点需求,可以将课程划分为三个阶段。

第二阶段则是Lectur4-Lecture8:抽象数据类型和面向对象编程。

1、面向对象的编程

1.1、OOP的基本概念

对象:真实世界中的对象,有两个特点:状态和行为。状态指可以用于描述它的数据,行为指它可以做的事情。

类:对象的一种抽象,定义并实现了对象。类实例是一个又一个具体的对象,但是类不是。

1.2、接口和枚举

接口之间可以继承与扩展,一个类可以实现多个接口,一个接口可以有多个实现类。接口规定了ADT的规约,类实现了ADT。

接口中的每个方法在所有类中都要实现,而通过default方法,在接口中统一实现某些功能,无需在各个类中重复实现它。这样我们可以以增量式的为接口增加额外功能而不破坏已有的类。

1.3、封装和信息隐藏

通过使用接口来声明变量类型,客户只使用接口提供的方法,无法直接访问其属性,程序可以很清晰的分离API及其实现,模块之间只通过API交流,内部信息得到保护。这样可以加速系统开发,易于维护和重用。

1.4、重写和抽象类

重写:重新实现父类中的方法。

重写的函数具有完全相同的Signature,程序执行时会调用哪个函数在运行过程中决定。父类中的被重写函数体不为空,意味着对其大多数子类来说,该方法是可以被直接复用的。对某些子类型来说,有特殊性,故重写父类型中的函数,实现自己的特殊要求。如果父类型中的某个函数实现体为空,意味着其所有子类型都需要这个功能,但各有差异,没有共性,在每个子类中都需要重写。

重写的时候,不能改变方法的本意。

只有定义没有实现的方法叫做抽象方法,拥有抽象方法的类叫做抽象类。如果只有抽象方法则叫接口。抽象类和方法用abstract修饰。

1.5、多态、子类型和重载

重载:方法名相同,Signature不同。根据参数列表进行匹配在编译阶段决定具体要用哪个方法。参数列表必须不同,返回值,作用域,抛出的异常可以不同。可以在同一个类内重载,也可以在子类里重载。

泛型:带类型参数的接口、类、方法……

2、ADT与OOP中的等价性

2.1、等价关系

自反、对称、传递。

2.2、不可变类型的相等性

AF导出的关系是等价关系。站在外部观察者角度,对两个对象调用任何的操作,都会得到相同的结果,则认为这两个对象是的等价的。反之亦然。

一般用==来比较基础数据类型,用equal来比较对象。

2.3、可变类型的相等性

equal()和HasCode()不需要重写。

本文发布于:2024-02-02 01:40:44,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170681339040592.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:课程   软件
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23