(一)学习总结
1.在上周完成的思维导图基础上,补充本周的学习内容,对Java面向对象编程的知识点做一个全面的总结。
参考资料: XMind
****2.汽车租赁公司,出租汽车种类有客车、货车和皮卡三种,每辆汽车除了具有编号、名称、租金三个基本属性之外,客车有载客量,货车有载货量,皮卡则同时具有载客量和载货量。用面向对象编程思想分析上述问题,将其表示成合适的类、抽象类或接口,说明设计思路并画出类图。
工具:PowerDesigner
参考教程:UML 简介**
3.阅读下面程序,分析代码是否能编译通过,如果不能,说明原因,并进行改正。如果能,列出运行结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20interface Animal{ void breathe(); void run(); void eat(); } class Dog implements Animal{ public void breathe(){ System.out.println("I'm breathing"); } void eat(){ System.out.println("I'm eating"); } } public class Test{ public static void main(String[] args){ Dog dog = new Dog(); dog.breathe(); dog.eat(); } }
不能通过
因为 void eat()这句访问权限不能小于接口中的访问权限,接口中访问权限默认为public型
应该改为
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24interface Animal{ void breathe(); void run(); void eat(); } class Dog implements Animal{ public void breathe(){ System.out.println("I'm breathing"); } public void eat(){ System.out.println("I'm eating"); } public void run() { System.out.println("I'm running"); } } public class Test{ public static void main(String[] args){ Dog dog = new Dog(); dog.breathe(); dog.eat(); dog.run(); } }
4.运行下面的程序
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36import java.util.Arrays; public class Test{ public static void main(String[] args){ String[] fruits = {"peach","banana","orange","apple"}; Arrays.sort(fruits); for(int i = 0;i < fruits.length;i++) { System.out.println(fruits[i]); } } } 源代码: public final class String implements java.io.Serializable, Comparable<String>, CharSequence{ private final char value[]; private int hash; private static final ObjectStreamField[] serialPersistentFields =new ObjectStreamField[0]; public String() { this.offset = 0; this.count = 0; this.value = new char[0]; } public String(String original) { int size = original.count; char[] originalValue = original.value; char[] v; if (originalValue.length > size) { int off = original.offset; v = Arrays.copyOfRange(originalValue, off, off+size); } else { v = originalValue; } this.offset = 0; this.count = size; this.value = v; }
修改
1
2
3
4
5
6
7
8
9
10
11import java.util.Arrays; public class Test{ public static void main(String[] args){ String[] fruits = {"peach","banana","orange","apple"}; Arrays.sort(fruits); for(int i = fruits.length-1;i>=0;i--) { System.out.println(fruits[i]); } } }
程序输出的结果是升序排序的。查看String 类的源码,说明是如何实现的?如果现在希望对输出的结果进行降序排序,该如何处理?修改上述代码,实现按照字母顺序逆序排序。
5.其他需要总结的内容。
(二)实验总结
实验内容:
1.某工厂生产各种音乐盒,客户无需知道音乐盒的制作过程,只需知道如何播放音乐盒即可。用简单工厂设计模式实现该过程:接口MusicBox具有方法play(),两个音乐盒类PianoBox,ViolinBox,MusicBoxFactory 产生MusicBox的实例。
设计思路:
先定义一个play 方法,然后按要求书写violinbox类和pianobox类
在将这两个类接口music类,
2.修改第三次作业的第一题,使用java.util.Date类表示职工的生日和参加工作时间,并将职工信息按照生日大小排序后输出。(分别用comparable和comparator实现)
问题:
对date类使用不好,输出 不能按书中的书写,
解决:
将原来的 在员工类中输出去掉了 生日的输出,改为在text中输出
设计思路:现将原来text中的生日等日期 删除,另外用个数组书写 这些日期,在类中 将日期的改为 date birth 等,在text 中将这些日期的数组代入到员工中,用db[]表示。
两个排序中,Comparator 另外书写一个类,来完成排序,连一个 这在员工类里直接进行运用
3.在案例宠物商店的基础上,实现以下功能:
(1)展示所有宠物
(2)购买宠物
(3)显示购买清单
(三)代码托管
https://git.oschina.net/hebau_cs15/Java-CS01QH.git
转载于:https://www.cnblogs.com/JoeH/p/6764063.html
最后
以上就是冷傲萝莉最近收集整理的关于java第五次实验的全部内容,更多相关java第五次实验内容请搜索靠谱客的其他文章。
发表评论 取消回复