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

第八周课程总结

一、包装类
      介绍
       装箱与拆箱
       应用
二、异常
      基本概念
       基本格式
       异常类的继承结构
       throws关键字
       throw关键字
       Exception类和RuntimeException类
       自定义异常类
       三、多线程         基本概念              进程                   多线程        Java中线程的实现                继承Thread类                     实现Runnable接口                     Thread和Runnable的区别

一、包装类

       1.介绍

                               8种基本类型变包装类

(1)除了Character 和 Boolean,其它六种都属于Number类的子类。

(2)Character 和 Boolean属于Object类的直接子类

2.装箱与拆箱

      装箱:将一个基本数据类型变为包装类

      拆箱:将一个包装类变为基本数据类型

3.应用

   (1)Integer类(字符串转int型)

public static int pareInt(String s) throws NumberFormatException

(2)Float类(字符串转float型)

public static float pareFloat (String s) throws NumberFormatException

二、异常
                 1.基本概念

异常是导致程序中断的一种指令流,如果不对异常进行正确的处理,则可能导致程序中断执行。

2.基本格式

            

try{
     //可能出现异常的语句
}[catch{
          //编写异常的处理语句
}catch{
          //编写异常的处理语句
}.......]
finally{
          //一定会运行到的程序代码;
}

异常处理流程

         3.异常类的继承结构

            在整个Java的异常结构中,实际有两个最常用的类,分别为Exception和Error,

            这两个全是Throwable的子类

             Exception:一般表示程序中出现的问题,可以直接使用try....catch处理。

             Error:一般指的是JVM错误,程序中无法处理。

        

         4.throws关键字

           在定义一个方法时可以使用throws关键字声明,使用throws声明的方法表示此方法

           不处理异常,而交给方法的调用者进行处理。

【格式】

class Math{
           public int div(int i,int j) throws Exception{    //方法可以不处理异常
                     int temp = i/j;
                     return temp;
           }

}

         5.throw关键字

使用throw抛出一个异常,抛出时直接抛出异常类的实例化对象即可

【格式】

public class ThrowDemo{
          public static void main(String args[]){
                  try{
                       throw new Exception("自己抛出异常");    //抛出异常的实例化对象
                  } catch(Exception e){
                           System.out.println(e);
                   }
           }
}

         6.Exception类和RuntimeException类

Exception: 在程序中必须使用try....catch进行处理

RuntimeException:可以不使用,但如果有异常产生,则异常将由JVM进行处理

         7.自定义异常类

           根据自己的需求定义自己的异常类

class MyException extends Exception{
        public MyException(String msg){
                 super(msg)
        }
}
public class ThrowDemo{
          public static void main(String args[]){
                  try{
                       throw new Exception("自定义异常");    //抛出异常的实例化对象
                  } catch(Exception e){
                           System.out.println(e);
                   }
           }
}

 三、多线程
         1.基本概念
                   (1)进程:进程是程序的一次动态执行过程
                   (2)多线程:多线程是实现并发机制的一种有效手段


         2.Java中线程的实现
                     (1)继承Thread类

【语法】

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


                     (2)实现Runnable接口

【语法】

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

 

                     (3)Thread和Runnable的区别

                        1.如果通过继承Thread类实现多线程,需要覆写run()方法

                         2.如果继承Thread类则不适合用于多个线程共享资源,

                           而实现Runnable接口,可以方便实现

实验报告(六)

一、异常

(一)实验源码

package yichang;

import java.util.*;
public class Yichang {

    public static void main(String[] args) {
        int score[]=new int [6];
        System.out.println("程序开始");
        System.out.println("请输入下标");
        Scanner out = new Scanner(System.in);
        int n = out.nextInt();
        try{
            for(int i=0;i<6;i++){
                score[i]=i*i;

            }
            System.out.println("score["+n+"]="+score[n]+" ");
        }catch(ArrayIndexOutOfBoundsException a){
            System.out.println("数组越界:"+a);
        }finally{
            System.out.println("程序结束");
        }
    }

}

(二)实验结果

二、危险品检查

(一)实验源码

异常类package danger;

public class DangerException extends Exception{
    String imformation;

    DangerException(String imformation){
        this.imformation=imformation;

    }
    void toShow(){

            System.out.println(imformation);

    }

}
检查类package danger;

public class Machine{
    String name;
    Goods g;

    public boolean isDanger(String name) {
        String score[] = {"炸弹","毒药","刀具","枪支"};
        boolean flag =false;
        for(int i=0;i<score.length;i++) {
            if(name.equals(score[i])) {
            flag = true;
            break;
            }
        }
        return flag;

    }

    void checkBag(Goods g){
        this.g=g;
        name=g.getName();
        try{
            if(isDanger(name)){
                System.out.print(name);
                throw new DangerException("是危险品!!!"+"\n");
            }
            else{
                System.out.print(name);
                throw new DangerException("不是危险品!"+"\n");
            }
        }catch(DangerException e){
              e.toShow();
        }
    }
}
Goods类package danger;

public class Goods{

    String name;

    public void setName(String name){
    this.name=name;
    }
    public String getName(){
    return name;
    }
}
测试类package danger;

import java.util.Scanner;

public class Test {

    public static void main(String[] args) {

        while(true) {
            Scanner sc=new Scanner(System.in);

            System.out.println("请输入物品:");
            String input=sc.nextLine();
            Goods g=new Goods();
            g.setName(input);
            Machine m=new Machine();
            m.checkBag(g);

        }
    }

}

(二)实验结果

        

原文地址:https://www.cnblogs.com/xu23/p/11693036.html

时间: 2024-10-09 04:55:34

第八周课程总结 & 实验报告(六)的相关文章

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

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

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

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

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

实验六 Java异常 实验目的 1.理解异常的基本概念: 2.掌握异常处理方法及熟悉常见异常的捕获方法. 实验要求 1.练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用. 2.掌握自定义异常类的方法. 实验内容 一.编写一个类,在其main()方法中创建一个一维数组,在try字句中访问数组元素,使其产生ArrayIndexOutOfBoundsException异常. 在catch子句里捕获此异常对象,并且打印"数组越界"信息,加一个finally子句,打印一条

第五周课程总结&amp;实验报告

第五周课程总结&实验报告 实验三 String类的应用 实验目的 掌握类String类的使用: 学会使用JDK帮助文档: 实验内容 1.已知字符串:"this is a test of java".按要求执行以下操作:(要求源代码.结果截图.) 统计该字符串中字母s出现的次数. 统计该字符串中子串"is"出现的次数. 统计该字符串中单词"is"出现的次数. 实现该字符串的倒序输出. 2.请编写一个程序,使用下述算法加密或解密用户输入的英文

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

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

第三周课程总结&amp;实验报告(一)

撰写第三周课程总结及实验报告(一) 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以内的所有

Java第三周课程总结&amp;实验报告一

第三周课程总结 1.关于面向对象的一些具体内容,明白了类与对象以及Java的封装性和构造方法以及对对象匿名的相关知识. 2.this关键字,它是表示类的成员属性(变量),使用this构造方法时必须放在首行,不能够循环调用,this只表示当前对象. 3.static关键字,使用static声明属性能够使对象属性共享,用static声明方法能够让类名称直接被调用,即静态方法. 4.main方法,必须定义为public static void main(String args[]),以及学习了main

第八周学习总结&amp;实验报告(6)

实验六 异常 一.实验目的: (1)理解异常的基本概念: (2)掌握异常处理方法及熟悉常见异常的捕获方法. 二.实验要求: (1)练习捕获异常.声明异常.抛出异常的方法.熟悉try和catch子句的使用. (2)掌握白定义异常类的方法. 三.实验内容: (一) 编写一个类,在其main()方法中创建一个-维数组,在try字句中 访问数组元素,使其产生Array IndexOutOfBoundsException异常.在catch子句里捕获此异常对象,并且打印"数组越界"信息,加一个fi

第五周课程总结&amp;实验报告(三)

实验三 String类的应用 实验目的: (1)掌握类String类的使用: (2)学会使用JDK帮助文档: 实验内容: 1.已知字符串:"this is a test of java".按要求执行以下操作: (1)统计该字符串中字母s出现的次数. (2)统计该字符串中子串"is"出现的次数. (3)统计该字符串中单词"is"出现的次数. (4)实现该字符串的倒序输出. 实验代码: package project2; public class t