Java实验五.doc_第1页
Java实验五.doc_第2页
Java实验五.doc_第3页
Java实验五.doc_第4页
Java实验五.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

面向对象程序设计 实验报告 实验五 继承、抽象类和接口学号 201617406 姓名 刘 顺 专业 网络工程 成绩 【实验目的与要求】1、 掌握Java中类的继承、变量继承、方法继承的思想和使用;2、理解和掌握java中多态性的覆写和重载的区别和用法;3、掌握抽象和接口的工作机制和用法;4、实验后及时总结、归纳、分析,并完成实验报告。【实验内容与要求】1、 继承和覆盖的使用(1) 编写Employee雇员类,在该类中定义了3个域:name表示员工姓名,salary表示员工的工资,work表示工作:“编写程序”,并分别为它们定义了set和get方法。(2) 编写Manager经理类,该类继承自Employee雇员类。在该类中,定义了一个bonus域,表示经理的奖金,重写work方法:“管理项目”。(3) 在主类中,创建Employee雇员和Manager经理对象,并为其赋值,输出其信息。2、 抽象类的定义和使用(1) 定义抽象类Aniaml动物抽象类,通过构造方法得到动物名字并输出;定义抽象方法shout()表示叫声;定义抽象方法eat()表示吃食。(2) 定义Cat类继承自Animal类,调用父类的构造方法输出猫的名字信息。实现抽象方法shout(“猫叫:喵喵喵!”) ;实现抽象方法eat(“猫喜欢吃:鱼”)。(3) 定义Dog类继承自Animal类,调用父类的构造方法输出狗的名字信息。实现抽象方法shout(“狗叫:汪汪汪!”) ;实现抽象方法eat(“狗喜欢吃:骨头”)。(4) 在主方法中,实例化“小猫”和“小狗”,并向上转型赋给Aniaml类变量Animal ani =new Cat(小猫); 分别调用ani的shout()和eat()方法。3、 接口的定义和使用(1)定义一个USB接口标准,定义2个抽象方法:USB设备信息显示show();USB设备开始工作start();USB设备停止工作stop(); (2)定义U盘子类,class Flash implements USB实现USB接口标准,实现方法 :USB接入产品信息show(“USB设备已经接入”);设备启动信息start(“USB设备已经启动”);设备停止动作信息stop(“USB设备已经停止”);(2)定义打印机子类,class Print implements USB实现USB接口标准,实现方法 :打印机接入产品信息show(“打印机已经接入”);设备启动信息start(“打印机已经启动”);设备停止动作信息stop(“打印机已经停止”);(3) 定义Computer类,定义插入USB方法 plugin(USB usb),调用接口方法,实现接口功能。(4) 在主类中定义Computer 的对象,分别调用方法plugin(USB Flash)表示插入Flash优盘,plugin(USB print) 表示插入打印机。【实验过程与结果】实验1:实验程序class Employee/父类(员工类)private String name;/私有成员变量 姓名private double salary; /私有成员变量 工资private String work; /私有成员变量 工作/成员变量赋值public void setname(String name)=name;public void setsalary(double salary)this.salary=salary;public void setwork(String work)this.work=work;/成员变量输出public void getname()System.out.println(姓名:+name);public void getsalary()System.out.println(工资:+salary);public void getwork()System.out.println(工作:+work);class Manager extends Employee/子类(经理类)private double bonus;/私有成员变量 奖金private String work;/私有成员变量 工作/成员变量赋值public void setbonus(double bonus)this.bonus=bonus;/成员变量输出public void getbonus()System.out.println(奖金:+bonus);/成员变量赋值public void setwork(String work)this.work=work;/成员变量输出public void getwork()System.out.println(经理工作:+work);public class Company public static void main(String args) Employee p1=new Employee();/实例化对象p1(员工)Manager p2=new Manager();/实例化对象p2(经理)p1.setname(小明);/员工姓名p1.setsalary(5000);/员工工资p1.setwork(编写程序);/员工工作p1.getname();/调用输出p1.getsalary();/调用输出p1.getwork();/调用输出System.out.println(* *分* *割* *线* *);p2.setname(小李);/经理姓名p2.setsalary(5000);/经理工资p2.getname();/调用输出p2.getsalary();/调用输出p2.setbonus(2000);/经理奖金p2.setwork(管理项目);/经理工作p2.getbonus();/调用输出p2.getwork();/调用输出/ TODO 自动生成的方法存根实验结果:仅供参考:实验分析本实验主要考查Java中类的继承和覆盖,其中包括方法的继承和变量的继承,方法的重写。我先写了一个Employee雇员类,该类作为父类,在该类中定义了3个成员变量:name、 salary、 work,并分别为它们定义了set和get方法。set方法为成员变量赋值,get方法输出成员变量信息。之后又定义了Manager经理类,该类作为子类继承自Employee雇员类,在该类中定义了一个bonus成员变量,表示经理的奖金,重写work方法表示经理的工作,经理的其他信息都可继承自父类雇员类,且不需重写。最后在主方法中,分别创建Employee雇员的对象P1和Manager经理的对象P2,调用set和get方法即可,输出其信息。实验2:实验程序abstract class AnimalString name;public Animal(String name)=name;System.out.println(动物:+name);abstract public void getname();abstract public void shout();abstract public void eat();class Cat extends Animal public Cat(String name) super(name);public void getname();public void shout()System.out.println(猫叫:喵喵喵!);public void eat()System.out.println(猫喜欢吃:鱼!);class Dog extends Animalpublic Dog(String name) super(name);public void getname()public void shout()System.out.println(狗叫:汪汪汪!);public void eat()System.out.println(狗喜欢吃:骨头!);public class Zoon public static void main(String args) Animal ani1 =new Cat(小猫);ani1.shout();ani1.eat();Animal ani2 =new Dog(小狗);ani2.shout();ani2.eat();/ TODO 自动生成的方法存根实验结果:参考结果:实验分析在本实验中,主要是考查对抽象类的定义和使用。相对来说和上一实验的继承有同源方法,理解上更简单。首先,我定义了一个抽象类Aniaml,可以理解为他就是父类,通过构造方法得到动物名字并输出,同时定义抽象方法shout()表示叫声,定义抽象方法eat()表示食物。而后我又定义了Cat类和Dog类均继承自Animal类,也可以理解为他们是Animal类的子类,可以直接调用父类的构造方法输出名字。调用实现抽象方法shout和抽象方法eat。最后在主方法中,实例化“小猫”和“小狗”的对象ani1和ani2,并向上转型赋给Aniaml类变量,分别调用ani1和ani2的shout()和eat()方法即可。实验3:实验程序interface USBabstract void show();abstract void start();abstract void stop();class Flash implements USBpublic void show()System.out.println(USB设备已经接入);public void start()System.out.println(USB设备已经启动);public void stop()System.out.println(USB设备已经停止);class Print implements USBpublic void show()System.out.println(打印机已经接入);public void start()System.out.println(打印机已经启动);public void stop()System.out.println(打印机已经停止);class Computervoid plugin(USB usb)usb.show();usb.start();usb.stop();public class Interface public static void main(String args) Computer p1=new Computer();p1.plugin(new Flash();p1.plugin(new Print();实验结果:参考结果实验分析本实验主要考查接口的定义和使用。接口(interface)和抽象类(abstract)都可以理解为继承的衍生,接口和抽象类的使用十分相似。在本实验中,我首先定义了一个USB接口(类比于抽象类),和3个抽象方法,USB设备信息显示show(),USB设备开始工作start(),USB设备停止工作stop()。而后我又定义了U盘子类和打印机子类,并重写show()、start()和stop()方法,实现抽象方法。而后又定义了了Computer类,定义插入USB方法 plugin(USB usb),即调用接口的方法,从而能够实现接口功能。最后在主方法中实例化Computer 的对象,分别调用方法实现设备的接入和停止。【实验心得与体会】本实验主要考查Java中类的继承、多态性的覆写和重载的区别和用法以及抽象类和接口的用法。我觉得最重要的是类的继承。类的继承应该是基础,只有学会了继承,才有可能理解抽象类和接口。起初对于抽象类和接口我

温馨提示

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

评论

0/150

提交评论