第八周课程总结及实验报告

实验报告

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

1)实验代码

package text7;

public class Text7 {

    public static void main(String[] args) {

        try {
            int s[]= {1,2,3};
            System.out.println(s[3]);
        }catch(ArrayIndexOutOfBoundsException a) {
            System.out.println("数组越界"+a);
        }finally {
            System.out.println("不管是否出现异常,都执行此行代码");
        }

        System.out.println("计算结束");

    }

}

2)运行截图

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

技术方案:

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

1)实验代码

package text71;

public class DangerException extends Exception {
    private static final long serialVersionUID = 1L;

    private String message;

    public DangerException(String message) {
        super();
        this.message = message;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public void toShow() {
        System.out.println("危险物品:"+message);
    }

}
package text71;

public class Goods {

    private boolean isDanger;
    private String name;

    public boolean isDanger() {
        return isDanger;
    }

    public void setDanger(boolean isDanger) {
        this.isDanger = isDanger;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Goods(String name) {
        this.name = name;
    }

}
package text71;

public class Machine {

    public void checkBag(Goods goods) throws DangerException{
        if(goods.isDanger()==true) {
            throw new DangerException(goods.getName());
        }
        else {
            System.out.println(goods.getName()+":不是危险品");
        }
    }
}
package text71;

import java.util.ArrayList;

public class Text7 {

    public static void main(String[] args) {
        ArrayList<String> list=new ArrayList<String>();

        list.add("汽油");
        list.add("香烟");
        list.add("枪");
        list.add("面包");
        list.add("酒精");
        list.add("刀具");

        String name=list.get(5);
        Goods good = new Goods(name);
        good.setDanger(true);

        Machine mc=new Machine();

        try {
            mc.checkBag(good);
            System.out.println(good.getName() + ":检查通过");
        }catch(DangerException e) {
            e.toShow();
            System.out.println(good.getName() + ":未通过");
        }

    }

}

2)运行截图

学习总结

异常类

throwsthrow

throws

使用throws声明的方法表示此方法不处理异常,而交给方法的调用处进行处理,格式如下:

public 返回值类型 方法名称(参数列表...)throws 异常类{}

throw

与throws关键字不同的是,可以直接使用throw关键字抛出一个异常,抛出时直接抛出异常类的实例化对象即可。

try{
      throw new Exception("自己抛出的异常!");
}catch(Exception e){
      System.out.println(e);
}

多线程

多线程的实现有两种方法继承Thread类使用Runnable接口
Thread类不共享,Runnable接口共享。

Thread类
格式:

class 类名称 extends Thread{
      属性...;
      方法...;
      public void run(){
             线程主体;
    }
}

想要实现多线程不是调用run()方法,而是start()方法。

原文地址:https://www.cnblogs.com/H-Alice/p/11692954.html

时间: 2024-08-29 22:30:54

第八周课程总结及实验报告的相关文章

第三周课程总结及实验报告(一)

撰写第三周课程总结及实验报告(一) 1.打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个“水仙花数”. 2. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值. 3. 编程求1!+2!+3!+…+20!. 4. 编写Java程序,计算8+88+888+…前10项之和. 5. 一个数如果恰好等于它的因子之和,这个数就称为完数.编写程序输出1000以内的所有完数. 6. 编写应用程序,输出满足1+2+3

第三周课程总结及实验报告

撰写第三周课程总结及实验报告(一) 1.打印输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其中各位数字立方和等于该数本身.例如,153是一个“水仙花数”. 2. 编写Java程序,求13-23+33-43+…+973-983+993-1003的值. 3. 编程求1!+2!+3!+…+20!. 4. 编写Java程序,计算8+88+888+…前10项之和. 5. 一个数如果恰好等于它的因子之和,这个数就称为完数.编写程序输出1000以内的所有完数. 6. 编写应用程序,输出满足1+2+3

第七周课程总结及实验报告

实验报告 (一)抽象类的使用 1.设计一个类层次,定义一个抽象类--形状,其中包括有求形状的面积的抽象方法. 继承该抽象类定义三角型.矩形.圆. 分别创建一个三角形.矩形.圆存对象,将各类图形的面积输出. 注:三角形面积s=sqrt(p(p-a)(p-b)*(p-c)) 其中,a,b,c为三条边,p=(a+b+c)/2 2.编程技巧 (1) 抽象类定义的方法在具体类要实现: (2) 使用抽象类的引用变量可引用子类的对象: (3) 通过父类引用子类对象,通过该引用访问对象方法时实际用的是子类的方法

第六周课程总结及实验报告

一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆的半径. 2.圆类Circle的方法成员: Circle():构造方法,将半径置0 Circle(double r):构造方法,创建Circle对象时将半径初始化为r double getRadius():获得圆的半径值 double getPerimeter():获得圆的周长 void disp(

2019秋JAVA第三周课程总结及实验报告(二)

个人博客 一.基础字符串操作 题目:已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) 统计该字符串中字母s出现的次数. 统计该字符串中子串"is"出现的次数. 统计该字符串中单词"is"出现的次数. 实现该字符串的倒序输出. package com.company; public class Main { static String str = "this is a test

2019秋JAVA第六周课程总结及实验报告(四)

题目: 源代码: package com.company; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double r = sc.nextDouble(); double h = sc.nextDouble(); Cylinder a = new Cylinder(r, h); a.diapV

第八周课程总结 &amp; 实验报告(六)

第八周课程总结 一.包装类 介绍 装箱与拆箱 应用 二.异常 基本概念 基本格式 异常类的继承结构 throws关键字 throw关键字 Exception类和RuntimeException类 自定义异常类 三.多线程 基本概念 进程 多线程 Java中线程的实现 继承Thread类 实现Runnable接口 Thread和Runnable的区别 一.包装类        1.介绍                                8种基本类型变包装类 (1)除了Character

第六周学习总结与实验报告

第六周&java实验报告四 一.实验目的 (1)掌握类的继承 (2)变量的继承和覆盖,方法的继承,重载和覆盖的实现: 二.实验的内容 (1)根据下面的要求实现圆类Circle. 1.圆类Circle的成员变量:radius表示圆的半径. 2.圆类Circle的方法成员: Circle():构造方法,将半径置0 Circle(double r):构造方法,创建Circle对象时将半径初始化为r double getRadius():获得圆的半径值 double getPerimeter():获得圆

第四周课程总结及实验报告

Java实验报告 计科一班 学号:20188414 陈贵平 完成时间 2019.9.20 Java简单类与对象 一.实验目的 掌握类的定义,熟悉属性.构造函数.方法的作用,掌握用类作为类型声明变量和方法返回值: 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性: 理解static修饰付对类.类成员变量及类方法的影响. 二.实验内容 写一个名为Rectangle的类表示矩形.其属性包括宽width.高height和颜色color,width和height都是double型