接口、包.doc_第1页
接口、包.doc_第2页
接口、包.doc_第3页
接口、包.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java程序设计实验报告实验(训)报告学号: 姓名: 班级:实验时间: 实验地点: 指导老师: 实验名称接口、包实验目的1、 掌握接口的定义与用法2、 掌握包的定义与使用一、实验题目1、观察接口的定义与用法,并按照【思考问题】内容修改和观察程序。2、按【思考问题】提示理解打包的应用过程。二、实验内容及结果(请将相应题目主要代码和结果截图写在相应题目下方)1、写程序文件Test_7.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 Test_7 public static void main(String args) rectangle rect=new rectangle(10,20); System.out.println(矩形面积=+rect.getArea(); System.out.println(矩形周长=+rect.getPerimeter(); 【思考问题】在实现类rectangle中注释掉一个方法后进行编译,看发生了什么?为什么?答:出现了错误,因为接口中申明了了方法都必须在子类中具体实现,由于只实现了一个,就出现了错误。在实现类rectangle中将各实现方法前的public修饰符去掉再进行编译,看发生了什么?为什么?答:出现了错误,因为如果去掉了public则只有同一个包中的类才能实现这个接口,不同包的类均无法实现这个接口,使之出现错误。将接口rec_Area_Peri中定义的两个方法前加上abstract修饰符再编译,看对程序有影响否?为什么?答:没有影响,因为接口中定义的方法本来就是抽象的方法,所以就算加上了abstract也只是更明确的说明而已,不会造成什么影响。不用单独的实现类rectangle,直接在主类classe Test_7中实现那两个方法,如何修改程序?将接口rec_Area_Peri中定义的两个方法拆分定义成两个接口,即每个接口只定义一个方法,程序将如何修改?答:只将改为如下:2. 按【思考问题】提示理解打包的应用过程。第一步:不使用包(使用默认包)在项目文件project下创建两个java文件,一个是mypack.java文件,定义两个类classA和classB,类修饰符为默认。另一个是主类文件,在该类中使用classA和classB。两个java文件全部使用默认包。-mypack.java源代码-class classA int a; void aaa() a=100; System.out.println(classA的输出+a); class classB int b; void bbb() b=200; System.out.println(classB的输出+b); - Test_8.java源代码-public class Test_8 public static void main(String args) classA objA=new classA(); classB objB=new classB(); objA.aaa(); objB.bbb(); 运行Test_8,观察运行结果。第二步:采用包,两个java文件用同一个包,即编译后的三个class文件放在同一个mypackage1包中。 -mypackage1.java源代码-package mypackage1;class classA int a; void aaa() a=100; System.out.println(classA的输出+a); class classB int b; void bbb() b=200; System.out.println(classB的输出+b); - Test_8.java源代码-package mypackage1;public class Test_8 public static void main(String args) classA objA=new classA(); classB objB=new classB(); objA.aaa(); objB.bbb(); 运行主类,观察运行结果。如上两个实验表明封装在同包里的类,只要成员不是私有的,相互之间透明,相当在一个java文件中一样使用。第三步:按【思考问题】提示理解打包的应用过程:【思考问题】将主类文件Test_8.java封装在另一个包mypackage2,再进行编译,看编译结果提示什么错误?(提示:两者不在同包,classA和classB不能被识别)。答:编译结果提示 上条件不变,在主类class Test_8加进import mypackage1.*语句,再编译,看是什么编译错误?(提示:载入了mypackag1包,可以识别这两个class,但这两个类不是public,不能被不同包使用)答:编译结果提示:将类classA和classB修饰为public再编译,看发生了什么?为什么?(提示:一个java文件中只能有一个public类且类名与文件名相同,因此每个public类用一个单独的java文件,且文件名与类名相同)答:提示有错误,因为文件中只能有两个public类,而只能有一个public类与文件重名,故出现了错误。上面通过编译后,再看Test_8还存在什么错误?(提示:classA和classB中的方法修饰符是默认的,另一个包中的代码允许访问吗?)答:它提示方法aaa()在classA中不是public,方法bbb()在classB中也不是public,则都不允许访

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论