首页 > 技术文章 > 第5次作业

gwhwyx 2017-04-25 14:24 原文

(一)学习总结

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

参考资料: XMind

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

设计思路:

需要定义两个接口,一个抽象类car,三个类:kc,hc,pk;
抽象类汽车car:属性有:编号bh,名称name,租金money;
接口A:定义载货量方法:zaihuo();
接口B:定义载客量方法:zaike();
子类客车kc继承汽车租赁公司car,特有属性:载客量zk。继承接口B。
子类货车hc继承汽车租赁公司Car,特有属性:载货量zh。继承接口A。
子类皮卡pk继承汽车租赁公司Car,特有属性:载客量zk,载货量zh。继承接口A和B。

工具:PowerDesigner

参考教程:UML 简介

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


答:不能 ,一是类型Dog必须实行继承的抽象方法Animal.run();二是void eat()方法前没有写public。
应该为
运行结果为I'm breathing I'm eating。

4.运行下面的程序


运行结果:apple banana orange peach
程序输出的结果是升序排序的。查看String 类的源码,说明是如何实现的?如果现在希望对输出的结果进行降序排序,该如何处理?修改上述代码,实现按照字母顺序逆序排序。
String属于对象,String类继承了comparable接口,使用compareTo方法比较,Arrays中只提供基本数据类型数组排序,其他的都从属于Arrays.sort(Object[])。要改为降序排列的话将大小顺序反一下即可。

5.其他需要总结的内容。

(二)实验总结

1.音乐盒

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

(1)程序设计思路:
运用工厂模式,一个接口,两个副类,一个音乐盒测试工厂就可以写出。
如何定义工厂:

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

用comparable和comparator比较输入职工的生日和工作时间。

(2)问题:如何输出生日,日期的排序。

int i=0;
Arrays.sort(b);
for(i=0;i<10;i++){
System.out.println(b[i].toString());}

3.在案例宠物商店的基础上,实现以下功能:

(1)展示所有宠物
(2)购买宠物
(3)显示购买清单

程序设计思路:1创建pet类,2创建dog和cat副类,3创建test类对题目要求的功能进行实现并退出。

(三)代码托管


链接:git@git.oschina.net:hebau_cs15/java-cs02gwh1.git

推荐阅读