以下为《《面向对象程序设计(Java)》上机实验报告4(1)》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
《面向对象程序设计(Java)》上机实验报告
指导教师:鲁某某
班级
学号
姓名
实验日期
实验名称
软工开发22-1
***0031
刘某某
2023.4.18
实验4 内部类与异常处理
实验目的与要求
实验目的
1.掌握内部类的用法。
2.掌握使用try…catch语句。
3.掌握Lambda表达式的用法。
实验要求
1.校内报纸:学校创办校内报纸,但不希望其他学校创办这样的报纸,那么学校就可以将创办报纸的类作为自己的内部类。编写一个School类(模拟学校),School中定义名字为InnerNewspaper的内部类。
2.车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。编写一个Exception的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出 “危险品”。编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true),将抛出DangerException异常对象。
程序在主类的main方法中的try…catch语句的try部分让Machine类的实例调用checkBag(Goods goods)方法,如果发现危险品就在try…catch语句的catch部分处理危险品。
将创建单接口匿名类的实例的代码简化为Lambda表达式。
内部购物券
手机专卖店为了促销自己的产品,决定发行内部购物券,但其他商场不能发行该购物券。编写一个MobileShop(模拟手机专卖店),该类中有一个名字为InnerPursechaseMoney的内部类(模拟内部购物券)。主类用于测试,输出结果如下:
手机专卖店目前有30部手机
用价值20000的内部购物券买了6部手机
用价值10000的内部购物券买了3部手机
手机专卖店目前有21部手机
5. 自定义异常类
自定义异常类MyException,该类继承自Exception类,类中只有含一个字符串参数msg的构造方法,构造方法中只有一条语句super(msg)——调用父类的构造方法。另外,编写自定义类person,类中只有两个私有的变量,一个是字符串类型的姓名,另一个是整型变量age;有两个公有方法void getAge()和setAge(int age),其中setAge(int age)的功能是把参数age的值加到类中的变量age中(但要求age>0,否则抛出自定义异常MyException类的对象),getAge()方法返回age的值。编写应用程序。
实验步骤
1. 校内报纸:学校创办校内报纸,但不希望其他学校创办这样的报纸,那么学校就可以将创办报纸的类作为自己的内部类。编写一个School类(模拟学校),School中定义名字为InnerNewspaper的内部类。
代码:public class School { ?
? ? String schoolName;
? ? ? ?InnerNewsPaper newsPaper; //内部类声明对象newsPaper
School() {
? ?this("某某大学"); //调用带参数的构造方法
? ? }
? ? School(String s) {
? ? ? ? ? newsPaper = new InnerNewsPaper();//创建对象newsPaper
? ? ? ?String [] content = {"学校举办迎新会.", "机械系 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 toShow()方法输出 “危险品”。编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true),将抛出DangerException异常对象。程序在主类的main方法中的try…catch语句的try部分让Machine类的实例调用checkBag(Goods goods)方法,如果发现危险品就在try…catch语句的catch部分处理危险品。
实验总结及心得体会
本次实验更好的掌握了内部类的用法,同时也掌握了使用try…catch语句,以及更好的掌握了Lambda表达式的用法,收获颇多。
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]
以上为《《面向对象程序设计(Java)》上机实验报告4(1)》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。