`

实验 4 包、接口与异常处理(exception)

阅读更多
一、实验目的
    了解 Java 中包(package)、接口(interface)和异常处理(exception)的作用,掌握包、接口、
异常处理的设计方法。
二、实验要求
1. 了解 Java 系统包的结构。
2. 掌握创建自定义包的方法。
3. 掌握使用系统接口的技术和创建自定义接口的方法。
4. 理解系统异常处理的机制和创建自定义异常的方法。
三、实验内容
(一)了解并使用 Java 的系统包
    包是类和接口的集合。利用包可以把常用的类或功能相似的类放在一个包中。Java 语言提供系统 包,其中包含了大量的类,可以在编写 Java 程序时直接引用它们。为便于管理和使用它们,将这些类 分为了不同的包。包又称类库或 API 包,所谓 API(Application Program Interface)即应用程序接口。API 包—方面提供丰富的类与方法供大家使用,如画图形、播放声音等,另一方面又负责和系统 软硬件打交道,圆满实现用户程序的功能。所有 Java API 包都以“java.”开头,以区别用户创建的包。
    接口解决了 Java 不支持多重继承的问题,可以通过实现多个接口达到与多重继承相同的功能。
    处理程序运行时的错误和设计程序同样重要,只有能够完善处理运行时出错的程序,软件系统才 能长期稳定地运行,异常处理就是说明如何处理程序运行时出错的问题。   
(二)创建并使用自定义包
    1.自定义包的声明方式
        <package> <自定义包名>
    声明包语句必须添加在源程序的第一行,表示该程序文件声明的全部类都属于这个包。
    2.创建自定义包 Mypackage
    在存放源程序的文件夹中建立一个子文件夹 Mypackage。例如,在“E:\java\程序”文件夹之中
创建一个与包同名的子文件夹 Mypackage(E:\java\程序\Mypackage),并将编译过的 class 文件放入该文件夹中。注意:包名与文件夹名大小写要一致。再添加环境变量 classpath 的路径,例如:
    E:\j2sdk1.4.2_01\lib; E:\java\程序
3.在包中创建类
• YMD.java 程序功能:在源程序中,首先声明使用的包名 Mypackage,然后创建 YMD 类,该类 具有计算今年的年份,可以输出一个带有年月日的字符串的功能。
• 编写 YMD.java 文件,源代码如下。
    package Mypackage;                     //声明存放类的包
    import java.util.*;                          //引用 java.util 包
    public class KY4_1_YMD {
        private int year,month,day;
        public static void main(String[] arg3){}
        public KY4_1_YMD(int y,int m,int d) {
            year = y;
            month = (((m>=1) & (m<=12)) ? m : 1);
            day = (((d>=1) & (d<=31)) ? d : 1);
        }
        public KY4_1_YMD() {
            this(0,0,0);
        }
        public static int thisyear() {
             return Calendar.getInstance().get(Calendar.YEAR);//返回当年的年份
        }
        public int year() {
            return year;//返回年份
        }
        public String toString(){
                return year+"-"+month+"-"+day;//返回转化为字符串的年-月-日
        }
  }
• 编译 KY4_1_YMD.java 文件,然后将 KY4_1_YMD.class 文件存放到 Mypackage 文件夹中。
  3.编写使用包 Mypackage 中 KY4_1_YMD 类的程序
• KY4_2.java 程序功能:给定某人姓名与出生日期,计算该人年龄,并输出该人姓名,年龄,出生日期。程序使用了 KY4_1_YMD 的方法来计算年龄。
• 编写 KY4_2.java 程序文件,源代码如下。
  import Mypackage.KY4_1_YMD; //引用 Mypackage 包中的 KY4_1_YMD 类
  public class KY4_2
  {
        private String name;
        private KY4_1_YMD birth;
  public static void main(String args[])
        {
            KY4_2 a = new KY4_2("张驰",1990,1,11);
            a.output();
        }
        public KY4_2(String n1,KY4_1_YMD d1)
        {
            name = n1;
            birth = d1;
        }
        public KY4_2(String n1,int y,int m,int d)
        {
            this(n1,new KY4_1_YMD(y,m,d));//初始化变量与对象
        }
        public int age()                                   //计算年龄
        {
            return KY4_1_YMD.thisyear() - birth.year(); //返回当前年与出生年的差即年龄
        }
        public void output()
        {
            System.out.println("姓名 : "+name);
            System.out.println("出生日期: "+birth.toString());
            System.out.println("今年年龄 : "+age());
        }
    }
• 编译并运行程序,结果如图 4.3 所示。
(三)使用接口技术
    1.实现 MouseListener 和 MouseMotionListener 两个接口
• 编写实现接口的程序文件 KY4_3.java,源代码如下。
        import java.applet.Applet;
        import java.awt.*;
        import java.awt.event.*;
        public class KY4_3 extends Applet implements MouseListener, MouseMotionListener {
        int x1, y1, x2, y2;
      public void init() {
         addMouseListener(this);
         addMouseMotionListener(this);
      }
      public void paint(Graphics g) {
         g.drawLine (x1, y1, x2, y2);
      }
      public void mousePressed(MouseEvent e) { // 记录起点坐标
         x1=e.getX();
         y1=e.getY();
      }
      public void mouseClicked(MouseEvent e) {}
      public void mouseEntered(MouseEvent e) {}
      public void mouseExited(MouseEvent e) {}
      public void mouseReleased(MouseEvent e) {}
      public void mouseDragged(MouseEvent e) { // 记录终点坐标
         x2=e.getX();
         y2=e.getY();
         repaint();
      }
      public void mouseMoved(MouseEvent e) {}
}
• 编译 KY4_3.java 文件。
• 编写 KY4_3.html 文件,源代码如下。
          <html>
          <applet codebase=e:/java/程序 code=KY4_3.class width=320 height=180>
          </applet >
          </html>
    (5)在浏览器中打开 KY4_3.html 文件,在窗口中拖动鼠标可以随意画出一条线
(四)了解异常处理机制
1. 编写使用 try…catch 语句处理异常的程序文件 KY4_4.java,源代码如下。
        public class KY4_6{
         public static void main(String[] arg3) {
         System.out.println("这是一个异常处理的例子\n");
        try {
          int i=10;
          i /=0;
        }
        catch (ArithmeticException e) {
          System.out.println("异常是:"+e.getMessage());
        }
        finally {
          System.out.println("finally 语句被执行");
        }
      }
    }
编译并运行程序
    注意:如果在 catch 语句中声明的异常类是 Exception,catch 语句也能正确地捕获,这是因为
Exception是ArithmeticException的父类。如果不能确定会发生哪种情况的异常,那么最好指定catch
的参数为 Exception,即说明异常的类型为 Exception。
2. 编写包含多个 catch 子句的 KY4_8.java 程序,源代码如下。
  public class KY4_5{
      public static void main(String[] args) {
        try {
          int a=args.length;
          System.out.println("\na = "+a);
          int b=42/a;
          int c[]={1};
          c[42]=99;
        }
        catch (ArithmeticException e) {
          System.out.println("发生了被 0 除:"+e);
        }
        catch (ArrayIndexOutOfBoundsException e) {
          System.out.println("数组下标越界:"+e);
        }
      }
  }
 
分享到:
评论

相关推荐

    java包接口异常处理实验

    ### Java包、接口、异常处理实验知识点解析 #### 实验一:Java包的理解与使用 1. **Java包的概念**: - Java包是用于组织类的一种方式,它可以帮助我们管理大量的类,使得代码结构更加清晰。 - 包允许我们将相关...

    实验4接口和内部类.pdf

    实验四主要涵盖了Java编程中的接口、内部类以及异常处理等概念。下面将分别对这些知识点进行详细解释。 首先,接口(Interface)在Java中是一种定义行为的规范,它包含抽象方法和常量。在本实验中,接口Animal定义...

    Java《面向对象程序设计》实验报告六

    4. 自定义异常的使用:自定义异常可以帮助我们更精确地定位和处理特定的错误情况,提高代码的可读性和可维护性。 通过这些实践,我们加深了对Java异常处理机制的理解,也学会了如何利用自定义异常来增强程序的错误...

    Java异常处理程序实验

    ### Java异常处理程序实验知识点详解 #### 一、实验目的 本实验旨在让学习者深入了解Java中的异常处理机制,特别是`try-catch-finally`结构的使用方式,并掌握如何自定义异常类。此外,还将涉及如何在接口实现过程...

    java实验2实验报告.doc

    本次实验是关于Java编程的学习,主要涵盖了包、接口以及异常处理的相关知识。实验目的是让学生深入理解Java程序的开发,并掌握以下几个核心概念: 1. **Java字符串处理**:在Java中,字符串是不可变对象,可以通过...

    《JAVA上机指导》

    实验 4 包、接口与异常处理(exception) 29 一、实验目的 29 二、实验要求 29 三、实验内容 29 (一)了解并使用 Java 的系统包 29 (二)创建并使用自定义包 29 (三)使用接口技术 31 (四)了解...

    java实验七.pdf

    【Java 实验七:包、接口与抽象类...通过这个实验,学生能更深入地理解Java中的包结构、接口使用和抽象类的定义,同时了解异常处理在实际编程中的应用。这样的实践有助于提升Java编程能力,为后续的项目开发奠定基础。

    异常类的使用

    ### 异常类的使用详解 #### 实验背景与目的 在本次实验中,主要目的是让学生理解并掌握Java中的异常...综上所述,通过这次实验不仅学会了如何设计接口、实现异常处理机制,还进一步加深了对Java面向对象编程的理解。

    JAVA实验报告二Java面向对象程序设计.docx

    在本次实验中,我们将深入理解面向对象的基本概念,包括类的定义、对象的创建、接口的使用以及异常处理。 首先,实验的第一个部分涉及创建一个名为`Course`的类,用于表示课程。课程具有三个属性:课程名...

    java实验源代码(共5个)

    实验二:包、接口、异常处理 包(Package)是Java组织类的一种方式,便于管理和重用代码。接口(Interface)则是一种完全抽象的类型,用于定义一组方法签名,但不提供实现。异常处理(Exception Handling)是Java中...

    iava.zip_iava类

    在"06 实验六 接口与异常"这个子文件中,可能包含了一些实际的示例代码和练习,旨在帮助学习者更好地理解和应用这些概念。通过实践,你可以编写一个简单的程序,声明一个接口,然后创建一个或多个类来实现这个接口,...

    java计算器实验报告

    4. **异常处理**: - 当用户尝试除以零时,需要捕获`ArithmeticException`并提供友好的错误提示。 - 对于输入的小数点数量限制,可以使用变量跟踪小数点的出现次数,如果超过一次则拒绝进一步输入。 - 对于输入的...

    java实验报告(免费下载)

    实验报告主要涵盖了Java编程语言的多个核心概念,包括类的定义与继承、接口与实现、异常处理、集合、泛型、文件操作、流处理、线程同步以及常用类的使用。以下是这些知识点的详细说明: 1. **代码块的调用时机**: ...

    java大学实验报告含答案.docx

    这门课程强调面向对象编程的概念,如类型与转换、类与对象、继承与多态、包与接口、数组与字符串、多线程编程以及异常处理。通过实验教学,学生可以加深对Java编程思想和技巧的理解,提升分析问题和解决问题的能力。...

    第四次实验_周玉川_20172213020061

    在实验中,我们关注了数组越界(`ArrayIndexOutOfBoundsException`)、除零错误(`ArithmeticException`)和空指针异常(`NullPointerException`)。`try`块包含可能会抛出异常的代码,当异常发生时,相应的`catch`...

    java2 实用教程(第三版) 实验指导 上机实践6 组件及时间处理(1)

    在本实验指导中,我们将深入探讨Java 2平台的核心特性,特别是组件编程和时间处理,这对于任何Java开发者来说都是至关重要的基础知识。实验分为三个部分:算术测试、信号灯模拟以及布局与日历的管理。 首先,让我们...

    ssd3实验5代码

    实验四可能涵盖了更高级的主题,例如接口、抽象类、异常处理、集合框架或者设计模式等。 在Java中,接口(Interface)定义了一组方法签名,强制实现类遵循某种规范。抽象类(Abstract Class)则可以包含未实现的...

    java实验实训报告册.pdf

    - Java中的异常处理机制用于处理程序运行时可能出现的问题,例如算术运算中的除数为零会抛出`ArithmeticException`,需要通过`try-catch`块来捕获并处理。 6. **包的创建与类的继承**: - 包是Java中组织类的一种...

    Java语言程序设计实验指导.doc

    实验者需要理解和应用try-catch-finally语句,通过创建和捕获Exception对象来熟悉异常处理流程。 实验五关注Java的可重用类,如数组、字符串和文件流的操作。实验者需解决第六章的相关习题,增强对这些关键概念的...

Global site tag (gtag.js) - Google Analytics