资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划java接口实验报告昆明理工大学信息工程与自动化学院学生实验报告课程名称:java程序设计开课实验室:年月日一、实验目的及内容目的:掌握Java中接口的概念内容:1.完成下面要求的程序?定义一个接口Shape,它含有一个抽象方法intarea()PublicinterfaceShapePublicabstractdoublearea1();(area=width*height/2);Publicabstractdoublearea2();(area=width*height);?定义一个表示三角形的类Triangle,该类实现接口Shape。此类中有两个分别用于存储三角形宽度和高度的private成员变量intwidth和intheight,在该类实现的方法area中计算并返回三角形的面积。PublicclassTrianglePrivateintwidth;Privateintheight;Publicdoublearea()Return(width,height);Publicstaticvoidmain(Stringargs)(area)?定义一个表示矩形的类Rectangle,该类实现接口Shape。此类中有两个分别表示矩形长度和宽度的成员变量intwidth和intheight,在该类实现的方法area中计算并返回矩形的面积。PublicclassRectanglePrivateintwidth;Privateintheight;Publicdoublearea()Return(width,height);Publicstaticvoidmain(Stringargs)(area)?定义一个类ShapeTest,该类中有一个方法如下:publicstaticvoidshowArea(Shapes)(“area=”+();在ShapeTest类中定义main函数,在main函数中创建Triang类的对象和Rectangle类的对象,并调用方法showArea两次以输出两个对象的面积。?思考:两次调用showArea方法时调用的area方法各是在哪个类中定义的方法?答:三角形调用showArea方法时调用的area方法是main函数中Triangle类中定义的方法,而矩形调用showArea方法时调用的area方法是main函数中Rectangle类中定义的方法二、要求给出实验内容1的程序设计、实现和结果,并对结果进行分析。通过利用接口求解三角形和矩形的面积,使我大致掌握了接口的意义和作用,可以被多个类实现,在该程序中,接口Shpape中含有抽象方法area,类Triangle和类Rectangle共同调用了接口Shape中的抽象方法area,来求解不同形状的面积,接口还提供方法声明与方法相分离的机制,使实现接口的多个类表现出共同的行为能力,接口中声明的抽象方法在实现接口的多个类中表现出多态性。实验五接口、多态与内部类实验目标:1、理解接口、塑型、多态的概念并能熟练应用;2、熟练掌握接口的定义和使用;3、深刻理解构造方法的调用顺序,理解编写时需要注意的问题;4、了解并学会使用内部类实验任务:1、继承时的多态:目测给出下面代码的执行输出结果,并简单解释每一行输出的原因。答:首先,该程序的主函数是Vehiclev=newVehicle();即先声明并实例化一个汽车对象,而();则是调用汽车的测试方法;而test方法里,Vehiclevc=newCar();是将上面的汽车指向了一个具体的小汽车对象;Busvb=newBus();将公共汽车指向了一个具体的公共汽车对象;drive();调用汽车的驾驶方法;();调用小汽车的驾驶方法;();调用公共汽车的驾驶方法;而();();则是直接调用汽车的刹车方法。因而运行结果如下:Anewbus.VehicleisdrivenCarisdrivenBusisdrivenVehicleisbrakedVehicleisbraked2.针对下面的简单的类图,从面向对象的角度,将Instrument定义成接口,应怎样实现。编写能完成如图功能的程序,并再编写一个简单的应用程序进行多态性测试。说明:Instrument表示乐器、Wind表示管乐器、Percussion敲击乐器、Stringed表示弦乐器、Woodwind表示木管乐器、Brass表示铜管乐器。要求:Instrument为接口,Wind为抽象类,其他为普通类。这里测试的目的是:我们知道当一个普通类实现一个接口时,必须实现该接口的全部方法,但当这个类是抽象类时,我们还需要实现该接口全部方法吗?如果不需要实现?那么是否直接不理这个方法就一,还是要将这个方法在自己类内部再标记一次为抽象方法。请编写测试代码,对实现Instrument接口的各个类进行多态测试,具体可参考课本例子。所谓多态测试就是向上自动塑型,以及向下动态绑定,而动态绑定的基本规则是实例方法“由下往上”寻找绑定,类方法和类属性成员“由上往下”寻找绑定。该题代码如下:packagezi;interfaceInstrumentvoidplay();Stringwhat();voidadjust();abstractclassWindimplementsInstrumentpublicvoidplay()();publicabstractStringwhat();publicvoidadjust()classPercussionimplementsInstrumentpublicvoidplay()();publicStringwhat()classStringedimplementsInstrumentpublicvoidplay()();publicStringwhat()classBrassextendsWindpublicvoidplay()();publicStringwhat()return();return();();return();();();publicvoidadjust()publicvoidadjust()publicvoidadjust()();classWoodwindextendsWindpublicvoidplay()();publicStringwhat()publicclassEx5_2publicstaticvoidmain(Stringargs)Instrumenti2,i3,i4,i5;/i1=newWind();/();i2=newPercussion();();i3=newStringed();();i4=newBrass();();i5=newWoodwind();();return();("();publicvoidadjust()其执行结果如下图所示:该程序的uml图截图如下:3编写程序,要求如下:定义Biology、Animal和Mankind3个接口;该题代码截图如下:以下为Biology的接口:以下为Animal的接口:以下为Mankind的接口:成绩:面向对象原理与Java实践课程实验报告实验2:继承与接口姓名_班级_学号_实验地点_实验时间_指导教师_一、实验目的:?掌握类的继承机制,掌握成员变量的隐藏与方法的重写?掌握接口的定义和实现方法二、实验要求:?复习类的继承以及接口的设计方法?注意保证类的封装性?编写程序完成以下实验内容并上交实验报告三、实验内容:1、P153:习题42、P153:习题53、P153:习题64、在程序包packageOne中编写至少含一个方法的公有接口InterfaceOne。在程序包packageTwo中定义公有类SuperClass,该类含有一个受保护的内部类InnerClass,这个类实现接口InterfaceOne。在程序包packageThree中定义公有类SubClass继承SuperClass,类SubClass定义一个返回类型为InterfaceOne的方法返回内部类InnerClass的对象实例。请正确使用程序包组织以上类和接口,编译并运行,并观察编译器生成的字节码文件的命名方式。四、设计思路:习题4的设计思路是设计一个抽象类作为父类,并设计相关字段以及计算成绩等级的抽象方法,然后再设计本科生类和研究生类作为子类继承,并且各自实现其计算成绩等级的抽象方法,最终将结果输出。习题5的设计思路跟习题4相同,只需额外设计一个枚举类存储学生的成绩等级,并对相关代码作少许修改即可。习题6的设计思路是习题4的延伸,在习题4的类结构基础上,将原来的计算成绩等级的抽象方法提取出来,放在一个公有接口中,然后再分别设计计算本科生和研究生成绩等级的类实现接口的抽象方法。五、程序源代码:习题4的源代码:packagePackage_4;publicabstractclassStudentStringName=;StringStu_type=;intC_score;intEnglish_score;intJava_score;intscore;Stringsco_Level=;publicStudent(Stringname,Stringstu_type,intsco1,intsco2,intsco3)Name=name;Stu_type=stu_type;C_score=sco1;English_score=sco2;Java_score=sco3;score=(sco1+sco2+sco3)/3;packagePackage_4;publicclassUndergraduateextendsStudentpublicUndergraduate(Stringname,Stringstu_type,intsco1,intsco2,in
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号