Java语言程序设计A实验1:类与对象资料 下载本文

内容发布更新时间 : 2024/5/12 12:58:24星期一 下面是文章的全部内容请认真阅读。

实验课程名称:Java语言程序设计A

实验项目名称 实 验 者 同 组 者 实验1:类与对象 专业班级 无 实验成绩 组 别 开始日期 第一部分:实验预习报告(包括实验目的及意义,实验基本原理与方法,主要仪器设备及耗材,实验内容及要求,实验方案与技术路线等) 一.实验目的及意义 1.根据实际需求,使用UML类图,合理设计类及其成员(实例变量、方法)。 2.编写、调用构造函数,初始化新建对象。 3.编写、调用方法,完成相关操作。 4.实现信息隐藏与封装。 5.创建对象、调用对象方法。 6.正确使用对象数组。 7.设计、实现算法逻辑。 二.实验基本原理与方法 1.面向对象的概念、思想、思维方式。 2.UML面向对象设计初步。 2.类的概念、结构、定义、使用。 3.构造函数的概念、结构、定义、调用。 4.方法的概念、结构、定义、调用。 5.信息隐藏与封装的概念、实现。 6.对象的概念、创建、使用。 7.对象数组的概念、使用。 8.控制流程。 三.主要仪器设备及耗材 1.PC及其兼容机。 2.计算机操作系统。 3.程序编辑器EditPlus。 4.Java开发工具JDK。 四.实验内容及要求 实验1-1:请设计一个类Student,该类的实例变量有学号studentNumber、姓名studentName、 专业specialty、学费tuition。学费tuition要实现封装,最低学费4500元。请绘制完 整的UML类图,写出类Student的Java源代码。然后,编写测试类StudentTest,给 出运行结果。 实验1-2:编写类Book,其实例变量简化为: bookName numRated5 numRated4 numRated3 numRated2 numRated1 方法addRating( )应保证能接收一个有效整数作为形参,将与形参匹配的评级人数加 1。例如,如果接收3,则numRated3加1。 方法getAverage( ),返回所有评级的平均值。 编写测试类BookReviewTest,在main( )方法中,创建一个Book对象,为这本图书评级6次,最后输出这本图书的书名、平均评级。 程序的一种可能的输出结果: Head First Java,Average Rating: 4.2 实验1-2(数组版本):重做实验1-2,使用数组代替变量保存图书评级,所有修改只应局限于 类Book内部,测试类BookReviewTest无需修改。 实验1-3(选做):编写储蓄账户类及测试类,模拟存款,参考以下运行方式: (1)新开5个储蓄账户,各储蓄账户的编号、户名在新开储蓄账户时初始化,假设每位用户新开储蓄账户时都存入了一笔钱。 (2)提示用户从键盘输入储蓄账户编号。 (3)若输入的储蓄账户编号与新开的5个储蓄账户编号之一匹配,则提示用户从键盘输入存款金额,存款金额必须大于0,否则显示错误提示,直到用户输入的存款金额大于0为止。 (4)相应储蓄账户的余额被更新。 (5)存款完成后,提示存款成功,显示该储蓄账户的编号、户名、余额。 (6)若输入的储蓄账户编号与新开的5个储蓄账户编号均无法匹配,显示错误提示,并询问是否还要继续存款。 (7)用户输入yes,继续执行步骤(2),否则显示退出信息。 最基本要求:绘制UML类图;储蓄账户的余额必须确保大于等于0。 五.实验方案及技术路线(设计思路、UML类图、算法、注意事项) 1)对于实验1-1,可以对studentNumber,studentName,specialty,tuition四个变量都进行封装,使用private关键字,然后在类中使用get和set方法,实现对这些实例变量的获取和更改。在setTuition()方法中,首先通过if语句对传入的参数进行判断,若数值大于或等于4500,则修改成功,否则输出错误提示,简略的UML图如下: 2)对于实验1-2中,各个星级人数的统计通过switch(){case}语句即可实现,但要注意的是,最好加上default语句用以处理错误输入的情况。数组版本只需要将numRated5、numRated4、numRated3、numRated2、numRated1这几个变量放入一个int[]数组中即可。 3)实验1-3中,因为考虑到各个储蓄账号不能重复,并且在每次操作的时候需要进行匹配,若每次都通过for()循环遍历则比较繁琐,操作时间长,说以采用HashMap集合存储账号,账号number为关键字,每个Account对象为值,因为在测试类中会使用到containsKey()等方法,所以在Account类中需要重写toString()、equal()以及hashCode()方法。简略的UML图如下: