Java实验报告

实验四类的继承

一、实验目的

(1)       理解异常的基本概念;

(2)       掌握异常处理方法及熟悉常见异常的捕获方法。

二、实验要求

(1)       练习捕获异常、声明异常、抛出异常的方法、熟悉try和catch子句的使用。

(2)       掌握自定义异常类的方法。

三、实验内容

(一)   编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常。在catch子句里捕获此异常对象,并且打印“数组越界”信息,加一个finally子句,打印一条信息以证明这里确实得到了执行。

(二)   自定义异常类的使用

车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。

技术方案:

编写一个Exgeption的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出“危险物品”。编写一个Machine类,该类的方法checkBag(Goods goods)当发现参数goods是危险品时(goods的isDanger属性是true)将抛出DangerException异常。

程序在主类的main()方法中的try-catch语句的try部分让Machine类的实例调用checkBag(Goods goods)的方法,如果发现危险品就在try-catch语句的catch部分处理危险品。

四、实验过程(请自己调整格式)

代码:

1 packagecom.company;2

3 classExceptionDemo4 {5

6 public static voidmain(String[] args)7 {8 int array [] = new int [3];//数据类型 数组名[] = new 数据类型[个数];

9

10 System.out.println("*****计算开始*****");11 try

12 {13 int num = array [5];14 }15 catch(ArrayIndexOutOfBoundsException e)16 {17 System.out.println("数组越界啦!!!"+e);18 }19 finally

20 {21 System.out.println("*****计算结束*****");22 }23 }24 }

运行结果:

代码:

1 package com.company;2

3 public classDemo4 {5 public static voidmain(String[] args) {6

7 Machine m = newMachine();8 Goods goods = newGoods();9

10 String item []={"水果","零食","硫磺","98K"};11

12 for(int i=0;i

16 if (item[i].equals("98K") || item[i].equals("硫磺")) {17 goods.isDanger();18 System.err.println(item[i] + "是危险物品"); //输出红色字体

19 }20 else

21 {22 System.out.println(item[i] + "是安全的");23 }24 }25 try

26 {27 m.checkBag(goods);28 }29 catch(DangerException e)30 {31 e.toShow();32 }33 }34 }

1 package com.company;2

3 public classGoods4 {5 String name;6 boolean isDanger;7

8 publicboolean isDanger()9 {10

11 returnisDanger;12 }13 publicString getName()14 {15 returnname;16 }17 public voidsetName(String name)18 {19 this.name =name;20 }21

22 public voidsetDanger(boolean isDanger)23 {24 this.setIsDanger();25 }26 publicObject getIsDanger()27 {28 returnisDanger;29 }30 public voidsetIsDanger(Object isDanger) //Object类在java.lang包下,是所有类的根31 {32 this.isDanger =(boolean) isDanger;33 }34 }

1 package com.company;2

3 public classMachine4 {5 public void checkBag(Goods goods)throws DangerException //public 返回值类型 方法名称(参数列表...)throws 异常类{}

6 {7 if(goods.isDanger())8 {9 DangerException Isdanger = newDangerException();10 }11 }12 }

1 package com.company;2

3 public classDangerException extends Exception4 {5 public voidtoShow()6 {7 System.out.println("有危险物品!");8 }9 }

运行结果:

跟老师上课讲的例题几乎一模一样,照着老师的模板,我们只需要稍微完善下就行,所有问题不大

五、 本次作业的总结

Object类的定义,常用方法:

1).Object类是所有类的父类,位于java.lang包中。

2).数组也是Object类的子类。

3).Object类的常用方法有:toString(); equals(); hashCode();。。。。。。

Object类在java.lang包下,是所有类的根。任何类的对象,都可以调用Object类中的方法,包括数组对象。

toString方法:

toString方法可以将任何一个对象转换成字符串返回

equals方法:

比较对象的虚地址,但是可以在类中被重写。

六、本周预习

通过 Callable 和 Future 创建线程:

1. 创建 Callable 接口的实现类,并实现 call() 方法,该 call() 方法将作为线程执行体,并且有返回值。

2. 创建 Callable 实现类的实例,使用 FutureTask 类来包装 Callable 对象,该 FutureTask 对象封装了该 Callable 对象的 call() 方法的返回值。

3. 使用 FutureTask 对象作为 Thread 对象的 target 创建并启动新线程。

4. 调用 FutureTask 对象的 get() 方法来获得子线程执行结束后的返回值。

创建线程的三种方式的对比:

1. 采用实现 Runnable、Callable 接口的方式创建多线程时,线程类只是实现了 Runnable 接口或 Callable 接口,还可以继承其他类。

2. 使用继承 Thread 类的方式创建多线程时,编写简单,如果需要访问当前线程,则无需使用 Thread.currentThread() 方法,直接使用 this 即可获得当前线程。

车站检查危险品 JAVA,第八周Java实验报告六相关推荐

  1. JAVA 车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。

    车站检查危险品的设备,如果发现危险品会发出警告.编程模拟设备发现危险品. 编写一个Exception的子类DangerException,该子类可以创建异常对象,该异常对象调用toShow()方法输出 ...

  2. JAVA异常实验:车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品

    车站检查危险品的设备,如果发现危险品会发出警告.编程模拟设备发现危险品: 编写能够满足如下条件的程序: 编写一个Exception的子类DangerException,该子类可以创建异常对象,该异常对 ...

  3. Java模式设计卖电脑实验报告_20145310《Java程序设计》第2次实验报告

    20145310<Java程序设计>第2次实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计 ...

  4. 《Java程序设计》第二次实验报告

    20145220 <Java程序设计>第二次实验报告 课程:Java程序设计 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 实验内容 初步掌握单元测 ...

  5. a星算法实现8数码问题c语言,A星算法求八数码问题实验报告.doc

    A星算法求八数码问题实验报告.doc 人工智能实验报告实验名称八数码问题姓名xx学号2012210 xx xx计算机学院 2014年1月14日1 实验目的 掌握A*的思想,启发式搜索,来求解在代价最小 ...

  6. 20165223《Java程序设计》第八周Java学习总结

    教材学习内容总结 第12章-JAVA多线程机制 要点 Java中的线程 Thread类与线程的创建 线程的常用方法 线程同步 协调同步的线程 线程联合 GUI线程 计时器线程 教材学习中的问题和解决过 ...

  7. JAVA第八周学习总结

    201711671102 曾燃亮 <java程序设计>第8周学习总结 教材学习内容总结 第九章 组件及事件处理 一.Java Swing概述 java的java.awt包,即java的抽象 ...

  8. 实验五 Java网络编程及安全 实验报告 20135232王玥

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序与设计         班级:1352 姓名:王玥 学号:20135232 成绩:             指导 ...

  9. java小球碰撞实验报告_实验五 Java网络编程及安全 实验报告 20135232王玥

    北京电子科技学院(BESTI) 实验报告 课程:Java程序与设计         班级:1352 姓名:王玥 学号:20135232 成绩:             指导教师:娄嘉鹏       实 ...

最新文章

  1. mysql学习之旅-数据库自动备份-测试环境搭建
  2. JavaScript--事件模型
  3. Asp.net Core 2.1新功能Generic Host(通用主机)深度学习
  4. TP类库解析和使用系列[Input类]
  5. PyOpenGL之3D界面详解(四)
  6. Kali Linux 从入门到精通(五)-测试环境准备
  7. albert-chinese-ner使用预训练语言模型ALBERT做中文NER
  8. 16.淘宝的架构演化案例
  9. DOTween 使用方法
  10. 服务器计算机性能测试,服务器平台计算性能工具Linpack服务器性能测试利器_一_.pdf...
  11. 双线虚拟主机服务器,国内双线虚拟主机是什么
  12. iphone好的网站总结
  13. python行星名称输出_用python绘制行星轨道
  14. mysql数据库全局搜索_数据库全局搜索
  15. 语音交互设计的一点认知
  16. 第三模块 面向对象网络并发编程 | day17 面向对象基础
  17. 空调器制冷系统故障-冷凝器脏堵
  18. C#与ABB机械手建立通信,并控制机械手动作
  19. C语言-三子棋游戏的实现
  20. 使用GPL, LGPL和Zlib开源许可证的一些注意点

热门文章

  1. git忽略文件的规则
  2. html表格怎么纵向合并单元格,在html中表格如何合并单元格
  3. 知识图谱:如何推动金融更智能?
  4. 3分钟掌握自给IP地址
  5. 华三H3C设备 公司网络外网变慢分析
  6. PhpExcel读取Excel表格中的数据
  7. Python程序错误记录
  8. 聊下图片滤镜,手机上的,lookup table(颜色查找表
  9. web前端-HTML-表格
  10. 重拾HelloWorld