Java内部类与异常类(上机实践二)

实践一 内部购物卷

手机专卖店为了促销自己的产品,决定发行内部购物券,但其他商场不能发行该购物券。编写一个 MobileShop 类(模拟手机专卖店),该类中有一个名字为 InnerPurchaseMoney 的内部类(模拟内部购物券)。

class MobileShop {InnerPurchaseMoney purchaseMoney1;//【代码1】//用内部类InnerPurchaseMoney声明对象purchaseMoney1InnerPurchaseMoney purchaseMoney2;//【代码2】 //用内部类InnerPurchaseMoney声明对象purchaseMoney1private int mobileAmount;  //手机的数量MobileShop(){purchaseMoney1=new InnerPurchaseMoney(20000);//【代码3】 //创建价值为20000的purchaseMoney1purchaseMoney2=new InnerPurchaseMoney(20000);//【代码4】 //创建价值为10000的purchaseMoney2}void setMobileAmount(int m) {mobileAmount = m;}int getMobileAmount() {return mobileAmount;}class InnerPurchaseMoney {int moneyValue;InnerPurchaseMoney(int m) {moneyValue =  m;}void buyMobile() {if(moneyValue>=20000) {mobileAmount = mobileAmount-6; System.out.println("用价值"+moneyValue+"的内部购物卷买了6部手机");}else if(moneyValue<20000&&moneyValue>=10000) {mobileAmount = mobileAmount-3; System.out.println("用价值"+moneyValue+"的内部购物卷买了3部手机");}}}
}public class NewYear
{public static void main(String args[]) {MobileShop shop = new MobileShop();shop.setMobileAmount(30);System.out.println("手机专卖店目前有"+shop.getMobileAmount()+"部手机");shop.purchaseMoney1.buyMobile();shop.purchaseMoney2.buyMobile();System.out.println("手机专卖店目前有"+shop.getMobileAmount()+"部手机");}
}

运行结果:

实践二 检查危险品

车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。编写一个 Exception 的子类 DangerException,该子类可以创建异常对象,该异常对象调用 toShow()方法输出“属于危险品”。编写一个 Machine 类,该类的方法 checkBag(Goods goods)当发现参数 goods 是危险品时(goods 的 isDanger 属性是 true)将抛出 DangerException 异常。程序在主类的 main()方法中的 try-catch 语句的 try 部分让 Machine 类的实例调用 checkBag (Goods goods)方法,如果发现危险品就在 try-catch 语句的 catch 部分处理危险品。

public class Check {public static void main(String args[]) {Machine machine = new Machine();String name[] ={"苹果","炸药","西服","硫酸","手表","硫磺"};Goods [] goods = new Goods[name.length]; //检查6件货物  for(int i= 0;i<name.length;i++) {goods[i] = new Goods();if(i%2==0) {goods[i].setIsDanger(false);goods[i].setName(name[i]);}else {goods[i].setIsDanger(true);goods[i].setName(name[i]);} }for(int i= 0;i<goods.length;i++) {try {machine.checkBag(goods[i]);//【代码1】 //检查物品System.out.println(goods[i].getName()+"检查通过");}catch(DangerException e) {e.toShow();//【代码2】 //e调用toShow()方法System.out.println(goods[i].getName()+"被禁止!"); }}   }
}public class DangerException extends Exception{public String toShow(){return "属于危险品";
}
}public class Goods {boolean isDanger;String name;public void setIsDanger(boolean boo) {isDanger = boo;}public boolean isDanger() {return isDanger;  }public void setName(String s) {name = s;}public String getName() {return name;}
}public class Machine {public void checkBag(Goods goods) throws DangerException {if(goods.isDanger()) {DangerException danger=new DangerException();//【代码1】  //抛出dangerthrow danger;}else {System.out.print(goods.getName()+"不是危险品! ");}}
}

运行结果:

Java内部类与异常类(上机实践二)相关推荐

  1. Java实验之接口与实现、内部类与异常类

    Java实验之接口与实现.内部类与异常类 Java实验之接口与实现 评价成绩 体操比赛计算选手成绩的办法是去掉一个最高分和最低分后再计算平均分,而学校考 察一个班级的某科 目的考试情况时,是计算全班同 ...

  2. Java实用教程笔记 内部类与异常类

    内部类与异常类 Review Note 只有我能用,不希望别人用(内部类的基本思想) .class文件的生成个数 匿名类 匿名类都是一次性的(当前这一次,以后不能用) Conclusion Revie ...

  3. Java 创建用户异常类、将异常一直向上抛、 throw和throws的区别

    Java 创建用户异常类.将异常一直向上抛. throw和throws的区别 参考文章: (1)Java 创建用户异常类.将异常一直向上抛. throw和throws的区别 (2)https://ww ...

  4. Java篇第七回——内部类与异常类

    一.内部类 我们在谈到某一个场所,比如说剧场时,我们更加关注这个剧场中有哪些角儿,我们在提到剧场时也经常会把角儿们顺带脚提出来.在Java中也有这种逻辑,我们希望在声明一个剧场类时,这个剧场就已经有了 ...

  5. Java之业务异常类BusinessException封装实例

    开心一笑 幼儿园搞活动,共有三个班,每个班出场时,要喊口号/坏笑 小一班喊的口号是:"小一,小一,勇争第一."/拳头 小二班口号是:"小二,小二,独一无二."/ ...

  6. java内部类和匿名类

    2019独角兽企业重金招聘Python工程师标准>>> 内部类:一个类在另一个类的内部,即我们在一个类里面再写一个类. 简单来阐述两种内部类的用法: 1.内部类可以直接引用外部类的成 ...

  7. 红牛农场JAVA_JAVA内部类与异常类

    内部类 定义 在类A中声明了类B,B称为内部类,A称为B的外嵌类 应用 需要建立一个类,不想它为外界所用 public class RedCowform{ static String formName ...

  8. java 自定义的异常类_java Exception 自定义异常类

    创建自定义的异常类需要继承自Exception类,并提供含有一个String类型形参的构造方法,该形参就是一场的描述信息,可以通过getMessage()方法获得.例如: public class N ...

  9. java 内部类and匿名类

    内部类 内部类 匿名类 内部类 内部类可以在类体中,或方法中声明. 内部类中不可以声明static的变量或者方法. 内部类的方法可以调用外部类的方法. public class Outer {//定义 ...

最新文章

  1. BrainNet:用于人与人之间直接协作的多人脑对脑接口
  2. static 关键字作用
  3. git连接到github(SSH无密码登陆)
  4. Java加密与解密的艺术~数字证书详解
  5. 力扣有没有java_【Java】一篇文章带你玩转用Java刷力扣
  6. 搭建基于hyperledger fabric的联盟社区(六) --搭建node.js服务器
  7. 解决办法:syslinux:Accessing physical drive
  8. 泰凌微ble mesh蓝牙模组天猫精灵学习之旅 ④ 初认识阿里天猫精灵官方Genie BT mesh Stack框架, windows平台搭建打印Hello World !
  9. 计算机显示u盘隐藏分区,Win10下U盘多分区启动盘被显示怎么隐藏方法
  10. 这是一场 DDD 的探索之旅
  11. 基于uml的大学图书馆图书信息管理系统设计实验_全国大学最美图书馆排行!这个学校居然有按摩服务?!...
  12. 2022年最火副业;海外抖音 (TikTok) 搬运视频,一周赚一个月工资。
  13. C++小作业——简单通讯录设计
  14. Java 使用iframe的简单功能页面
  15. cf服务器无响应,穿越火线优化玩家分辨率,告别白屏未响应!
  16. 总结项目笔记Demo
  17. [转帖]PAT 计算机程序设计能力考试
  18. 【origin绘图】如何通过插入小图的方法放大局部图
  19. 【经典】Mybatis百万级高效批量插入
  20. 企业微信私域流量运营神器

热门文章

  1. workbook需要引入的包_解决Maven引用POI的依赖,XSSFWorkbook依旧无法使用的问题
  2. 通信电子电路(一)通电课程背景 以及选频网络概念
  3. 移动学习 AndroidStudio内存优化分析—hprof文件分析
  4. 腾讯免费企业邮箱服务器,如何免费申请腾讯企业邮箱?
  5. PageRank算法(二)
  6. filecoin lotus 图形化测试平台pond
  7. 【持续更新】SDN Software Defined Networks(Thomas D.Nadeau Ken Gray)翻译
  8. 51单片机用c语言在液晶1602上显示汉字,lcd1602与单片机连接图,基于51单片机的lcd1602液晶显示屏连接电路图...
  9. 【视点】从一些实例看大数据部门的权与责
  10. 奇妙的AE特效插件之红巨人粒子特效Trapcode Suite