当前位置:首页 > 实验五-
计算机科学与技术系
实 验 报 告
专业名称 计算机科学与技术 课程名称 JAVA语言程序设计 项目名称 JAVA语言的编程环境和开发工具
班 级
学 号 姓 名 实验日期 2016/3/7
1
实验五 接口、包、异常
1、 实验性质:验证型 2、 实验学时:2学时
一、 一、实验目的
1. 掌握接口的定义和应用特点。
2. 熟悉包的定义和使用。学会如何引用自定义的类包或第三方类包。同时进一步理解类修
饰符和成员修饰符对访问性的影响。 3. 熟悉Java捕捉异常机制。
二、 二、实验内容
1. 接口实验
程序文件Ex5_1.java。运行该程序,然后按【思考问题】内容修改和观察程序。
interface rec_Area_Peri { int getArea();//计算面积 int getPerimeter();//计算周长 }
//用接口的方法来实现具体的操作步骤
class rectangle implements rec_Area_Peri { int width,length; rectangle(int w,int l) {width=w; length=l; }
public int getArea()
{return width*length;} public int getPerimeter()
{return (2*(width+length));} }
public class Ex5_1
{ public static void main(String args[]) { rectangle rect=new rectangle(10,20);
System.out.println(\矩形面积=\
System.out.println(\矩形周长=\ } }
运行结果:
矩形面积=200 矩形周长=60
【思考问题】
①在实现类rectangle中注释掉一个方法后进行编译,看发生了什么?为什么?
2
答:错误:调用rect.getPerimeter()方法发生错误,因为在interface接口中只是声明了getPerimeter()方法,并没有具体的实现。
②在实现类rectangle中将各实现方法前的public修饰符去掉再进行编译,看发生了什么?为什么?
答:错误:不能降低自 rec_Area_Peri 继承的方法的可视性,因为rec_Area_Peri本身是公有的,但在类rectangle中默认的比公有的高,所以降低自 rec_Area_Peri 继
承的方法的可视性。
③将接口rec_Area_Peri中定义的两个方法前加上abstract修饰符再编译,看对程序有影响否?为什么?
答:没有影响,因为类rectangle实现接口rec_Area_Peri
④不用单独的实现类rectangle,直接在主类classe Ex5_1中实现那两个方法,如何修改程序?
答:package example;
publicclass Ex5_1 implements rec_Area_Peri{ }
运行结果:
矩形面积=200 矩形周长=60 intwidth,length; Ex5_1(int w,int l)
{ }
publicint getArea() {
returnwidth*length; }
publicintgetPerimeter() {
return (2*(width+length));
}
width=w; length=l;
publicstaticvoid main(String args[]) { Ex5_1 e=new Ex5_1(10,20);
System.out.println(\矩形面积=\+e.getArea()); System.out.println(\矩形周长=\+e.getPerimeter()); }
⑤将接口rec_Area_Peri中定义的两个方法拆分定义成两个接口,即每个接口只定义一个方法,程序将如何修改?
package example;
3
publicinterfacerectangleA { int getArea();//计算面积 }
package example;
publicinterface rectangleP { int getPerimeter();//计算周长 }
package example;
publicclass rectangle_2 implements rectangleA,rectangleP{ }
package example;
publicclass Ex5_1_2 { }
运行结果:
矩形面积=200 矩形周长=60
publicstaticvoid main(String args[])
{ rectangle_2 rect=newrectangle_2(10,20); System.out.println(\矩形面积=\+rect.getArea()); System.out.println(\矩形周长=\+rect.getPerimeter()); }
intwidth,length;
rectangle_2(int w,int l) {width=w; length=l; }
publicint getArea() {returnwidth*length;} publicint getPerimeter()
{return (2*(width+length));}
2.包的定义与使用
第一步:不使用包(使用默认包)
在工程文件project1下创建两个java文件,一个是mypack.java文件,定义两个类classA和classB,类修饰符为默认。另一个是主类文件,在该类中使用classA和classB。两个java文件全部使用默认包。
----------------mypack.java源代码---------------------------- class classA { int a; void aaa() {a=100;
4
共分享92篇相关文档