




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验5 继承、多态、接口和异常处理一、实验目的1、掌握Java的类和对象的声明和使用方法2、掌握Java的类的继承和实现方法;3、掌握多态性在类的继承中的运用;4、掌握接口的定义与使用。5、掌握基本异常的处理机制 6、熟悉try语句与catch语句的搭配使用 7、了解有异常处理与没有异常处理的差别 8、多重catch语句的使用9、使用Throws声明异常和Throw抛出异常二、实验环境1、PC微机;2、DOS操作系统或 Windows 操作系统;3、Java sdk程序开发环境、eclipse集成环境。三、实验内容1. 设计三个类,分别是学生类Student,本科生类UnderGraduate,研究生类Postjgraduate,其中Student类是一个抽象类,它包含学生的基本信息如姓名、所学课程、课程成绩等,而Undergraduate类和Postgraduate类都是Student类的子类,这两个类计算课程成绩等级的方法有所不同,如下表所示。假设某班级里既有研究生又有本科生,编写程序统计出全班学生的成绩等级并打印出来。要求:将程序空白部分补充完整。本科生标准研究生标准80100 优秀90100 优秀7080 良好8090 良好6070 一般7080 一般5060 及格6070 及格50以下 不及格60以下 不及格abstract class Student final static int CourseNo = 3; String name;String type; int courses; String courseGrade; public Student(String name) = name; courses = new intCourseNo; 代码1 courseGrade = ; /初始化courseGrade为空串 public abstract void calculateGrade(); public String getName( ) return name; public String getType( ) 代码2 return type; /返回学生类型 public String getCourseGrade( ) return courseGrade; public int getCourseScore(int courseNumber) return coursescourseNumber; public void setName(String name) = name; public void setType(String type) this.type = type; public void setCourseScore(int courseNumber, int courseScore) 代码3 this.coursescourseNumber = courseScore; /按课程索引号设置课程成绩 class Undergraduate extends Student public Undergraduate(String name ) super(name);type = 本科生; public void calculateGrade() int total = 0; double average = 0; for (int i = 0; i =80&average=70&average=60&average=50&average60) courseGrade = 及格; else courseGrade = 不及格; class Postgraduate extends Student public Postgraduate(String name) super(name); type = 研究生; public void calculateGrade() int total = 0; double average = 0; for (int i = 0; i =90&average=80&average=70&average=60&average70) courseGrade = 及格; else courseGrade = 不及格; public class Polymorphism public static void main(String args) Student students = new Student5; students0 = new Undergraduate(陈建平); students1 = new Undergraduate(鲁向东); students2 = new Postgraduate(匡晓华); students3 = new Undergraduate(周丽娜); 代码5 students4 = new Postgraduate(梁欣欣); / 创建姓名为梁欣欣的Postgraduate对象students4 for (int i=0; i5 ;i+) studentsi.setCourseScore(0,87); studentsi.setCourseScore(1,90); studentsi.setCourseScore(2,78); for (int i=0; i5 ;i+) studentsi.calculateGrade(); System.out.println(姓名 + 类型 + 成绩); System.out.println(-); for (int i=0; i5 ;i+) System.out.println(studentsi.getName( )+ + studentsi.getType( )+ + studentsi.getCourseGrade( ); 2. 设计实现一个Soundable接口,该接口由三个类Radio、Walkman和Mobilephone具体实现,并设计一个应用程序类来使用这些类。将下面程序补充完整。import java.util.Scanner;interface Soundable public void increaseVolume( ); public void decreaseVolume( ); public void stopSound( ); public void playSound( );class Radio implements Soundable public void increaseVolume( ) System.out.println(增大收音机音量); public void decreaseVolume( ) System.out.println(减小收音机音量); public void stopSound( ) System.out.println(关闭收音机); public void playSound( ) System.out.println(收音机播放广播); class Walkman implements Soundable public void increaseVolume( ) System.out.println(增大随声听音量); public void decreaseVolume( ) 代码1 System.out.println(减小随声听音量); / 输出减小随声听音量 public void stopSound( ) System.out.println(关闭随声听); public void playSound( ) System.out.println(随声听发出音乐); class Mobilephone implements Soundable public void increaseVolume( ) System.out.println(增大手机音量); public void decreaseVolume( ) System.out.println(减小手机音量); public void stopSound( ) System.out.println(关闭手机); public void playSound( ) System.out.println(手机发出来电铃声); class People private String name; private int age; public void listen(Soundable s) s.playSound( ); public class InterfaceTest public static void main(String args) int i; People sportsman = new People( ); Scanner scanner = new Scanner(System.in); Soundable soundDevice = new Soundable3; /往声音设备数组中放入能发声的设备 soundDevice0 = new Radio( ); soundDevice1 = new Walkman( ); 代码2 soundDevice2 = new Mobilephone( ); /创建手机对象并赋值给soundDevice2 System.out.println(你想听什么? 请输入选择:0-收音机 1-随声听 2-手机); i = scanner.nextInt( ); /开始听声音 sportsman.listen(soundDevicei); soundDevicei.increaseVolume( ); 代码3 soundDevicei.stopSound( ); /调用stopSound( )方法 3要求设计一个GUI图形窗口程序,该程序让用户输入一个星期中的任意一天的数字1到7,然后输出该数字所对应的是星期几。 程序的运行效果如图1 图1但是当用户输入的数字不在1到7范围内时,程序应该弹出一个对话框以显示发生了异常,如图2和图3所示。 图2 图3package myjava;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class GUIGraphicsWindow public static void main(String args) / TODO Auto-generated method stubBoundary frame = new Boundary();frame.setSize(350,100);frame.setTitle(日子数与星期几转换);frame.setLocationRelativeTo(null);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);class Boundary extends JFrame private static JTextField Jtnum = new JTextField(10);private static JTextField Jtday = new JTextField(10);public Boundary() JPanel p1 = new JPanel();JPanel p2 = new JPanel();p1.setLayout(new GridLayout(2,2);setLayout(new GridLayout(1,1);p1.add(new JLabel(输入数字);p1.add(Jtnum);p1.add(new JLabel(星期几);p1.add(Jtday);p2.add(new JLabel();add(p2);add(p1);ActionListener listener = new TextFiledListener();Jtnum.addActionListener(listener);public static JTextField getJtnum() return Jtnum;public static void setJtnum(JTextField jtnum) Jtnum = jtnum;public static JTextField getJtday() return Jtday;public static void setJtday(JTextField jtday) Jtday = jtday;class TextFiledListener implements ActionListener public void actionPerformed(ActionEvent e) int num = Integer.parseInt(Boundary.getJtnum().getText();String day = ;try day = handle(num);Boundary.getJtday().setText(day); catch (Exception e1) JOptionPane.showMessageDialog(null, BadDataException:您输入的日子数不是1.7, 无效日期,JOptionPane.WARNING_MESSAGE); public String handle(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全生产技术题库含答案
- 课件不完整问题分析
- 2025年村级农机长助理考试模拟试卷
- 2025年安全员考试通关指南与题解
- 2025年节目编导招聘面试题及答案解析
- 2025年安全管理面试题及答案解析
- 己亥杂诗教学课件
- 2025年养老驿站招聘面试问题及高分答案
- 2025年康复师面试实操技能考核题
- 2025年电子商务从业人员能力测试题及答案解析
- 10kV架空线路检修方案最终
- 肾动脉狭窄的超声诊断课件整理
- 金丝键合工艺培训汇编课件
- 奥维互动地图使用介绍课件
- 小学语文新课程标准最新版2022
- 室外雨污水、消防管网施工方案
- 传染病学总论-人卫最新版课件
- (中职)计算机组装与维修电子课件(完整版)
- (高职)旅游景区服务与管理电子课件完整版PPT全书电子教案
- 部编版七年级语文上册教案(全册)
- 《汉服》PPT课件(完整版)
评论
0/150
提交评论