Java 程序设计 接口回调及集合类应用
深圳大学实验报告
课程名称: Java 程序设计
实验项目名称: 必实验3 接口回调及集合类应用
学院: 计算机与软件学院
专业: 计算机科学与技术
指导教师: 毛斐巧/潘微科
报告人: 黎浩然 学号: 2018112061 班级: 01
实验时间:2019年10月25日(周日)-2019年11月15日(周五)
实验报告提交时间:
教务部制
一、 实验目的
1. 熟悉集合类的应用,掌握接口的定义、实现类的编写和接口回调等技术。
二、实验内容与要求
1. 抽象类和接口的实验。(24分)
(1.1) 定义一个抽象类Human:包含一个成员变量String name;构造方法Human(String name),用于初始化姓名name;一个抽象方法double sayHello()。在报告中附上程序截图和详细的文字说明。(6分)
(1.2) 定义三个继承抽象类Human的类,分别命名为Chinese、Japanese和English,在这三个类中重写sayHello()方法,分别输出一句中文、日文和英文的问候;在报告中附上程序截图、运行结果和详细的文字说明。(6分)
(1.3) 定义一个测试类HumanTest:创建一个包含3个Human对象的数组,3个Human对象来自Chinese、Japanese和English类,循环调用该数组中的元素的sayHello()方法。在报告中附上程序截图、运行结果和详细的文字说明。(6分)
(1.4) 通过一个接口(命名为Human)和三个实现类(命名为Chinese、Japanese和English)来达到如上类似的效果。在报告中附上程序截图、运行结果和详细的文字说明。(6分)
2. 编写Java应用程序,计算菜单“北京烤鸭:199.1元;西芹炒肉:12.9元;酸菜鱼:59元;铁板牛柳:32.1元”的总价格。在报告中附上程序截图、完整的运行结果截图和简要文字说明。(16分)
3. 张三、李四等人是A社团成员,李四、王五等人是B社团成员,编写一个Java应用程序(要求使用集合类),输出参加A社团的人、参加B社团的人、以及同时参加两个社团的人。在报告中附上程序截图、完整的运行结果截图和详细的文字说明。(20分)
4. 有8个显示器,其属性有尺寸和价格。编写一个Java应用程序,使用TreeMap<K,V>,按照价格从小到达排序输出所有显示器的信息,要求通过两种方式实现:通过实现Comparator接口和通过实现Comparable接口。在报告中附上程序截图、完整的运行结果截图和详细的文字说明。(20分)
报告写作。要求:主要思路有明确的说明,重点代码有详细的注释,行文逻辑清晰可读性强,报告整体写作较为专业。(20分,这一项的评分,采用20分、10分和0分三个级别)
说明:
(1)本次实验课作业满分为100分,占总成绩的比例(待定)。
(2)本次实验课作业截至时间2019年11月21日(周四)23:59。
(3)报告正文:请在指定位置填写,本次实验不需要单独提交源程序文件。
(4)个人信息:WORD文件名中的“姓名”、“学号”,请改为你的姓名和学号;实验报告的首页,请准确填写“学院”、“专业”、“报告人”、“学号”、“班级”、“实验报告提交时间”等信息。
(5)提交方式:截至时间前,请在Blackboard平台中提交。
(6)发现抄袭(包括复制&粘贴整句话、整张图),该次作业记零分。
(7)延迟提交,不得分;如有特殊情况,请于截至日期之后48小时内发邮件到panweike@szu.edu.cn,并在邮件中注明课程名称、作业名称、姓名、学号等信息,以及特殊情况说明,我收到后会及时回复。
(8)期末考试阶段补交无效。
三、实验过程及结果
1. 抽象类和接口的实验。(24分)
(1.1) 定义一个抽象类Human:包含一个成员变量String name;构造方法Human(String name),用于初始化姓名name;一个抽象方法double sayHello()。在报告中附上程序截图和详细的文字说明。(6分)
程序如下:
(1.2) 定义三个继承抽象类Human的类,分别命名为Chinese、Japanese和English,在这三个类中重写sayHello()方法,分别输出一句中文、日文和英文的问候;在报告中附上程序截图、运行结果和详细的文字说明。(6分)
Chinese类:
Japanese类:
English类:
(1.3) 定义一个测试类HumanTest:创建一个包含3个Human对象的数组,3个Human对象来自Chinese、Japanese和English类,循环调用该数组中的元素的sayHello()方法。在报告中附上程序截图、运行结果和详细的文字说明。(6分)
测试类:
运行结果如下:
(1.4) 通过一个接口(命名为Human)和三个实现类(命名为Chinese、Japanese和English)来达到如上类似的效果。在报告中附上程序截图、运行结果和详细的文字说明。(6分)
Human接口:
Chinese类:
Japanese、English类:
测试类代码不变
运行结果如下:
2. 编写Java应用程序,计算菜单“北京烤鸭:199.1元;西芹炒肉:12.9元;酸菜鱼:59元;铁板牛柳:32.1元”的总价格。在报告中附上程序截图、完整的运行结果截图和简要文字说明。(16分)
Food类:
测试类:
运行结果:
3. 张三、李四等人是A社团成员,李四、王五等人是B社团成员,编写一个Java应用程序(要求使用集合类),输出参加A社团的人、参加B社团的人、以及同时参加两个社团的人。在报告中附上程序截图、完整的运行结果截图和详细的文字说明。(20分)
程序代码如下:
程序运行结果:
4. 有8个显示器,其属性有尺寸和价格。编写一个Java应用程序,使用TreeMap<K,V>,按照价格从小到达排序输出所有显示器的信息,要求通过两种方式实现:通过实现Comparator接口和通过实现Comparable接口。在报告中附上程序截图、完整的运行结果截图和详细的文字说明。(20分)
Comparable接口的Monitor类:
测试类:
运行结果如下:
通过实现Comparator接口:
测试类:
运行结果如下:
四、实验总结与体会
(写写感想、建议等)
- Java提供丰富的Collection和Map类及其方法,使得用户不必了解其内部机理,从而直接使用其提供的功能。
五、成绩评定及评语
1.指导老师批阅意见:
2.成绩评定:
指导教师签字:毛斐巧
2019年 月 日
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。
Converted to HTML with WordToHTML.net