实验 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);
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
接口实验报告 实验 接口实验目的】 1. 了解Java(package)、接口(interface)的作用。 2. 掌握接口设计方法。 【实验要求】 1. 了解Java 系统的结构。 2. 掌握创建自定义的方法。 3. 掌握使用系统接口的技术和创建自定义接口的方法。 【实验步骤】 一.了解并使用Java 的系统 1. API 接口异常处理的作用 是类和接口的集合。利用可以把常用的类或功能相似的类放在一个中。Java 语言提供系统,其中含了大量的类,可以在编写Java 程序时直接引用它们。为便于管理和使用它们,将这些类分为了不同的又称类库或API ,所谓API(Application Program Interface)即应用程序接口。API —方面提供丰富的类与方法供大家使用,如画图形、播放声音等,另一方面又负责和系统软硬件打交道,圆满实现用户程序的功能。所有Java API 都以“java.”开头,以区别用户创建的。 常见Java系统及其作用: 1)语言(java.lang):提供的支持括字符串处理、多线程处理、异常处理、数学函数处理等,可以用它简单地实现Java程序的运行平台。 2)实用程序(java.util):提供的支持括哈希表、堆栈、可变数组、时间和日期等。 输入输出(java.io):用统一的流模型来实现所有格式的I/O,括文件系统、网络、输入。 3)网络(java.net):支持Internet的TCP/IP协议,用于实现Socket编程;提供了与Internet的接口,支持URL连接,WWW的即时访问,并且简化了用户/服务器模型的程序设计。 4)抽象图形用户接口(javax.swing):实现了不同平台的计算机的图形用户接口部件,括窗口、菜单、滚动条、对话框等,使得 Java可以移植到不同的平台。 接口解决了Java 不支持多重继承的问题,可以通过实现多个接口达到与多重继承相同的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值