依据三个实验的知识点需求,可以将课程划分为三个阶段。
第二阶段则是Lectur4-Lecture8:抽象数据类型和面向对象编程。
对象:真实世界中的对象,有两个特点:状态和行为。状态指可以用于描述它的数据,行为指它可以做的事情。
类:对象的一种抽象,定义并实现了对象。类实例是一个又一个具体的对象,但是类不是。
接口之间可以继承与扩展,一个类可以实现多个接口,一个接口可以有多个实现类。接口规定了ADT的规约,类实现了ADT。
接口中的每个方法在所有类中都要实现,而通过default方法,在接口中统一实现某些功能,无需在各个类中重复实现它。这样我们可以以增量式的为接口增加额外功能而不破坏已有的类。
通过使用接口来声明变量类型,客户只使用接口提供的方法,无法直接访问其属性,程序可以很清晰的分离API及其实现,模块之间只通过API交流,内部信息得到保护。这样可以加速系统开发,易于维护和重用。
重写:重新实现父类中的方法。
重写的函数具有完全相同的Signature,程序执行时会调用哪个函数在运行过程中决定。父类中的被重写函数体不为空,意味着对其大多数子类来说,该方法是可以被直接复用的。对某些子类型来说,有特殊性,故重写父类型中的函数,实现自己的特殊要求。如果父类型中的某个函数实现体为空,意味着其所有子类型都需要这个功能,但各有差异,没有共性,在每个子类中都需要重写。
重写的时候,不能改变方法的本意。
只有定义没有实现的方法叫做抽象方法,拥有抽象方法的类叫做抽象类。如果只有抽象方法则叫接口。抽象类和方法用abstract修饰。
重载:方法名相同,Signature不同。根据参数列表进行匹配在编译阶段决定具体要用哪个方法。参数列表必须不同,返回值,作用域,抛出的异常可以不同。可以在同一个类内重载,也可以在子类里重载。
泛型:带类型参数的接口、类、方法……
自反、对称、传递。
AF导出的关系是等价关系。站在外部观察者角度,对两个对象调用任何的操作,都会得到相同的结果,则认为这两个对象是的等价的。反之亦然。
一般用==来比较基础数据类型,用equal来比较对象。
equal()和HasCode()不需要重写。
本文发布于:2024-02-02 01:40:44,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170681339040592.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |