1.在上周完成的思维导图基础上,补充本周的学习内容,对Java面向对象编程的知识点做一个全面的总结。

2.汽车租赁公司,出租汽车种类有客车、货车和皮卡三种,每辆汽车除了具有编号、名称、租金三个基本属性之外,客车有载客量,货车有载货量,皮卡则同时具有载客量和载货量。用面向对象编程思想分析上述问题,将其表示成合适的类、抽象类或接口,说明设计思路并画出类图。

类图如下

设计思路:货车、客车、皮卡等链接到租赁公司的接口,之后去继承重写get存货量的方法。

3.阅读下面程序,分析代码是否能编译通过,如果不能,说明原因,并进行改正。如果能,列出运行结果

不能通过编译。
原因:

(1)在接口中声明的方法必须是public abstract,而本题中没有。
(2)非抽象类必须实现接口中的所有方法。定义错了,应该是public abstract void 变量名称(类型)的形式。

4.运行下面的程序

运行的结果为:

实验内容:

1.某工厂生产各种音乐盒,客户无需知道音乐盒的制作过程,只需知道如何播放音乐盒即可。用简单工厂设计模式实现该过程:接口MusicBox具有方法play(),两个音乐盒类PianoBox,ViolinBox,MusicBoxFactory 产生MusicBox的实例。

设计思路:
建立yinyuehe接口

建立PianoBox和ViolinBox两个类,继承MusicBox接口

建立MusicBoxFactory实现功能

2.修改第三次作业的第一题,使用java.util.Date类表示职工的生日和参加工作时间,并将职工信息按照生日大小排序后输出。(分别用comparable和comparator实现)

设计思路:

3.在案例宠物商店的基础上,实现以下功能:(1)展示所有宠物(2)购买宠物(3)显示购买清单

程序设计思路:
宠物商店的形式和简单的工厂设计的形式上是类似的,分别有一个Cat类,Dog类,然后根据编号来确定顾客选择的宠物,并将其信息输出,最后总体输出顾客选择的所有宠物,并没有写完。

码云截图