面向对象(Java)实验03、继承、接口和多态_第1页
面向对象(Java)实验03、继承、接口和多态_第2页
面向对象(Java)实验03、继承、接口和多态_第3页
面向对象(Java)实验03、继承、接口和多态_第4页
面向对象(Java)实验03、继承、接口和多态_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

电子信息来源实验报告学科课程名称:物件导向程式设计(Java)主题:实验03继承、接口和多态性实验类别:验证,设计类级别:BX1210学号:8姓氏:按柚子分类说明:实验态度:严肃、普通、恶劣实验结果:正确的()部分正确的()错误()实验理论:掌握、熟悉、理解、生疏操作技术:强大的()常规()故障()实验报告:良好()正常()不良()成果:导师:王中华批准时间:2014年3月25日一、实验目的(1)掌握类的继承机制。(2)熟悉类的成员变量和方法的访问控制。(3)熟悉方法或配置方法多态性。(4)熟悉界面定义方法。二、实验内容(1)定义球,包括公共成员变量“半径”(double r)、两种公共成员方法:半径设置方法(void setR(double x)和半径值获取方法(double getR()。定义继承Ball类的台球类Billiards。此类具有两个公共成员方法颜色(String color),用于设置颜色方法setColor()、输出信息方法show()。其中,show()方法可以输出台球的颜色和半径值。定义公共类TestBall以测试前两个类。(2)定义String gender(性别)和int age(年龄)的成员属性和具有抽象成员方法drives(Vehicle v)的抽象类驱动程序,从而派生female Driver和male Driver的子类。定义String type(模型)和int id(车牌号码)的成员属性和抽象成员方法drivesdbydriver(驱动程序世界),以定义派生Bus和Car两个子类的抽象类Vehicle。定义测试类TestDemo,在main()方法中创建FD和MD的两个驱动程序对象,然后创建VB和VC的两个Vehicle对象。首先将所有类放在.sdju.exp031包中,然后调用drives()和drivedByDriver()成员方法输出以下字符串:A Female drives a CarA Male drives a Bus将Bus和Car类放在.sdju.exp032包中,以验证对单个类及其成员的访问权限。将TestDemo类注释掉,在包.sdju.util中创建新的LimitRun测试类。在LimitRun类的main()方法中,首先创建20个Vehicle对象(随机生成车辆编号,车辆编号的范围为1到1000),然后仅允许车辆2通过,从而输出所有车辆的通过。(3)作者包括三个公共域变量(名字、性别、年龄),Person类(称为构造函数,是Person类的派生类)包括两个新的公共域变量(学编号、类编号)、两个公共方法(修改年龄、显示基本信息)和配置方法。定义一组学生对象,初始化他们的基本信息,然后依次输出。(4)接口实验运行程序文件TestInterface.java .程序,然后单击事故内容修改并观察程序。Interface rec_Area_Peri int getArea();int get perimeter();class rectangle implements rec _ area _ periint width,lengthRectangle(int w,int l) width=w;length=l;Public int getArea() return width * lengthPublic int getPerimeter() return(2 *(width length);Public类测试接口 public static void main(string args)rectangle=newrectangle (10,20);System.out.println(矩形面积= rect . getarea();system . out . print ln( rectangular extensions= rect . get perimeter();思考问题。【】在rectangle类中注释方法,然后对其进行编译,可以看到会发生什么情况吗?怎么了?如果从类rectangle中删除并编译每个实现方法前面的public修饰符,将会发生什么情况?怎么了?在接口rec_Area_Peri中定义的两种方法之前添加abstract修饰符,以确定是否影响程序,从而进行编译。怎么了?如何修改程序以直接在基类classe TestInterface中实现这两种方法,而无需单独的类rectangle实现?将接口rec_Area_Peri中定义的两个方法分区定义为两个接口,即每个接口仅定义一个方法,程序如何修改?三、实验结果(主要代码和运行结果)(1)packagecn . edu . SD ju . no28 . Johnson;Public class testballpublic static void main(string args)ball a=new ball(2);a . setr(3);System.out.println(球形半径: a . getr();Billiards b=new billiards(3, red );b . set color( bule );b . setr(2);b . show();班级球private double r;Ball(),-r=0;double r This.r=rVoid setr(双r) & nbspThis.r=rdouble getr() return r;Class billiards extends ballPrivate String colorBilliards()super();Color= writeBilliards(双r,string color) 超级(r);This.color=colorVoid setColor(字符串颜色)This.color=colorVoidshow()System.out.println(“台球颜色;”Color n台球半径: super . getr();(1)运行结果(2)packagecn . edu . SD ju . no28 . Johnson;Public class testdemopublic static void main(string args)driver FD=new female driver( female ,20);Driver MD=new male driver (male ,20);Vehicle vb=new bus(bus ,239);Vehicle vc=new car(car ,234);FD . drives(VC);Vb .dirdbydriver(MD);Abstract class driverString genderInt agePublic driver (string gender,int age) This.gender=genderThis.age=ageabstract void drives(vehicle v);Abstract class vehicleString typeInt idPublic vehicle (string type,int id) This.type=typeThis.id=idAbstract void dirdydriver(驱动程序who);class female driver extends driver public female driver(string gender,int age)、超级(gender,age);Void驱动器(vehicle v) system . out . print ln( a gender drives a v . type);Class maleDriver extends驱动程序Public male driver (string gender,int age)、超级(gender,age);Void驱动器(vehicle v) system . out . print ln( a gender drives a v . type);Class bus extends vehicle公共总线(字符串类型,int id) Super(类型,id);Void dirdydriver(驱动程序who) & nbspsystem . out . print ln( a who . gender drives a type);Class car extends vehiclePublic car(字符串类型,int id) Super(类型,id);Void dirdydriver(驱动程序who) & nbspsystem . out . print ln( a who . gender drives a type);(2)运行结果packagecn . edu . SD ju . no28 . Johnson;import Java . util . random;Public class limit runpublic static void main(string args)vehicleve=new vehicle20;for(int I=0);I20I )Random rad=new Random();Ve I=new car (car ,rad . nexttint(10000);for(int I=0);I20I )If(vei)。id% 2=0)System.out.println(车牌=vei)。“可以传递id”);ElseSystem.out.println(车牌=vei)。无法传递id);(2)运行结果(3)packagecn . edu . SD ju . no28 . Johnson;Public class tests tupublic static void

温馨提示

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

评论

0/150

提交评论