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类,然后根据编号来确定顾客选择的宠物,并将其信息输出,最后总体输出顾客选择的所有宠物,并没有写完。
码云截图