第八周


實驗六 類的繼承
一、實驗目的
(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()方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM