zoukankan      html  css  js  c++  java
  • 第八周

    实验六 类的继承
    一、实验目的
    (1) 理解异常的基本概念:
    (2) 掌握异常处理方法及熟悉常见异常的捕获方法。
    二、实验要求
    (1) 练习捕获异常、声明异常、抛出异常的方法、然悉try和catch子句的使用。
    (2) 掌握自定义异常类的方法。
    三、实验内容
    (一)编写一个类,在其main(方法中创建一个一维数组,在try字句中
    访问数组元素,使其产生ArrayIndex0utOfBoundsException异常。
    在catch 子句里捕获此异常对象,并且打印“数组越界”信息,加
    一个finally子句,打印一条信息以证明这里确实得到了执行。
    1、实验代码

    package yichang;
    
    public class Exceptiondemo {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int a[]= {1,2,3,4,5};
    		try {
    			for(int i=0;i<=5;i++) {
    				System.out.println(a[i]);
    			}
    		}catch(ArrayIndexOutOfBoundsException e) {
    			System.out.println("数组越界");
    		}finally {
    			System.out.println("不管是否出现异常,都执行此代码");
    		}
    	}
    
    }
    

    2、实验结果

    二、自定义异常类的使用
    车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发
    现危险品。
    技术方案:
    编写一个Exgeption的子类 DangerException,该子类可以创建异常对
    象,该异常对象调用 toShowO方法输出“危险物品”。编写一个
    Machine 类,该类的方法 checkBeg(Goods goods)当发现参数 goods是
    危险品时(goods 的 isDanger属性是true)将抛出DangerException
    异常。
    程序在主类的main(方法中的 try-catch语句的try部分让Machine
    类的实例调用 checkBeg (Goods goods)的方法,如果发现危险品就在
    try-catch 语句的 catch 部分处理危险品。
    1、实验代码

    package 危险品;
    
    import java.util.ArrayList;
    
    public class Check {
    
        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() + ":未通过");
            }
            
        }
    
    }
    

    package 危险品;
    
    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 危险品;
    
    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 危险品;
    
    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()+":不是危险品");
            }
        }
    }
    

    2、实验结果

    三、总结
    多线程
    多线程的实现有两种方法继承Thread类和使用Runnable接口
    Thread类不共享,Runnable接口共享。
    格式

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

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

  • 相关阅读:
    USART串口通信实验
    EXTI 外部中断
    NVIC中断优先级管理
    实验1 跑马灯实验
    redis集群部署---一台主机
    zookeeper服务启动报错---Error contacting service. It is probably not running.
    shell脚本学习笔记
    最短路径算法——Floyd算法
    一篇文章学懂Shell脚本(摘抄)
    VIM空格和TAB转换
  • 原文地址:https://www.cnblogs.com/gaotian250yj912/p/11681083.html
Copyright © 2011-2022 走看看