使用Java实现面向对象编程3第三章多态上机实操手册_1.docx

上传人:lao****ou 文档编号:266359 上传时间:2023-07-07 格式:DOCX 页数:12 大小:25.45KB
下载 相关 举报
使用Java实现面向对象编程3第三章多态上机实操手册_1.docx_第1页
第1页 / 共12页
使用Java实现面向对象编程3第三章多态上机实操手册_1.docx_第2页
第2页 / 共12页
使用Java实现面向对象编程3第三章多态上机实操手册_1.docx_第3页
第3页 / 共12页
使用Java实现面向对象编程3第三章多态上机实操手册_1.docx_第4页
第4页 / 共12页
使用Java实现面向对象编程3第三章多态上机实操手册_1.docx_第5页
第5页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《使用Java实现面向对象编程3第三章多态上机实操手册_1.docx》由会员分享,可在线阅读,更多相关《使用Java实现面向对象编程3第三章多态上机实操手册_1.docx(12页珍藏版)》请在第一文库网上搜索。

1、JAVAOOp第三章上机步骤上机练习一、使用多态实现主人给宠物喂食功能。a训练要点: 子类到父类的自动类型转换 使用父类作为方法形参实现多态 多态可以减少代码量,可以提高代码的可扩展性和可维护性0需求说明: 实现喂养宠物功能不同宠物吃的东西不同主人可以喂养不同类型宠物参考实现步骤:1、在cn.jbit.epel下新建ch03包 之后将ch02中的三个类COPY到Cho3中2、按书上要求实现“(1)给抽象类Pet增加抽象方法eat方法0;”修改PeI类,在最后加入此方法: /* 抽象方法eat (),负责宠物吃饭功能。* /public abstract void eat ();这时我们看到其它

2、两个类报错了,这是因为在父类中有的抽象方法,在子类必须重写实现。3、按书上要求实现“(2)让Dog类重写Pet类的eat方法0,实现狗狗吃饭功能”修改DOg类* 实现吃饭方法。* /Overridepublic void eat () super. setHealth (super. getHealth () +3) /取出原来的健康值+3,再赋值回 去。SyStem. out.printin (狗狗+super .getName () + ”吃饱啦!健康值增加3。 ”);4、按书上要求实现“(3)让Penguin类重写Pet类的eat方法0,实现企鹅吃饭 功能”修改 PengUin类 /*实

3、现吃饭方法。*/Overridepublic void eat () super.SetHealth(super.getHealth() +5);SyStem. out.Println (企鹅”+ super.getName () + 吃饱啦!健康值增加5。 ); )5、按书上要求实现 “(4)创建主人类MaSter,添加feed (Pet Pet)方法,在该方 法中调用相应宠物eat()方法,实现宠物的喂养”在ChO3包下新建MaSter.java类,添加两个属性,之后生成无参及有参构造,之后对属性进 行封装。在最后加入喂食的方法。完整代码如下: package cn.jbit. epet.

4、ch03;/ * * 主人类* 更多资源可在阿升老师的【与或非】公号中自行查找* /public class Master private String name = uu; / / 主人名字private int money = 0; / 元宝数 / * 无参构造* /public Master () super ();)* 有参构造* /public Master(String name, int money) super ();this. name = name; this.money = money;)* 主人给宠物喂食。此处是一个多态的方法,根据不同的子类对象实例而调用不同的方 法*

5、 /public void feed(Pet pet) pet .eat ();6、按书上要求实现“(5)创建测试类Test,在类中创建主人,狗狗和企鹅对象, 调用feed(Petpet)方法实现主人喂养宠物功能” Test包中建立测试类 TeStChO301.java代码如下:package cn.jbit. epet. test;import cn.jbit.epet.ch03.Dog;import cn.jbit.epet.ch03.Master;import cn.jbit. epet.ch03. Penguin;/ * 测试类,领养宠物并喂食。public class Testch0

6、301 (public static void main(String) args) Master master=new MaSter (王先生”,100) ;/创建主:人类,初始姓名及元宝 数Dog dog = new Dog(“欧欧”,“雪娜瑞”);/创建狗狗类,初始姓名及品种Penguin pgn = new PengUin (楠楠,,Q妹”);/创!建企鹅类,初始性名及性 别master, feed (dog) ; /主人给狗狗喂食master. feed (pgn);主人给企鹅喂食运行结果如下:执行宠物的有参构造方法。执行宠物的有参构造方法。狗狗欧欧吃饱啦!健康值增加3。企鹅楠楠吃饱

7、啦!健康值增加5。7、按书上要求实现“(6)增加宠物Cat类,继承Pet类,重写eat。方法” 在ChO3下新建Cat类并继承Pet类,代码如下: package cn.jbit. epet.ch03; / * 猫类,宠物的子类。 * /public class Cat extends Pet private String color;/颜色* 无参构造* /public Cat () super ();)* 有参构造* /public Cat(String name, String color) super(name);this. color = color;)public String g

8、etColor() return color;)public void setcolor(String color) this. color = color;* 实现吃饭方法。* /Overridepublic void eat () super.SetHealth(super.getHealth()+4);System, out.printin (,c + super .getName () +”吃饱啦!体力增加4。,);*重写父类的Print方法。*/0Overridepublic void print () / TODO Auto-generated method stub8、按书上要求

9、实现“(7)在测试类TeSt类中添加领养猫和给猫喂食语句,执行 TeSt类,观察运行结果”修改TeStChc)301类,增加下面两行代码Cat cat = new Cat (Tomcat,黄色);/仓IJ建猫类,即领养该宠物,初始姓名及颜色 master. feed (cat); 卜:人给猫喂食 运行后结果:执行宠物的有参构造方法。执行宠物的有参构造方法。狗狗欧欧吃饱啦!健康值增加3。企鹅楠楠吃饱啦!健康值增加5。 执行宠物的有参构造方法。猫咪TOnICat吃饱啦!体力增加4。O上机练习二、训练父类到子类的强制类型转换及instanceof运算符的使有用 需求说明:主人和狗狗玩接飞盘游戏,狗狗

10、健康值减少10,与主人亲密度增加5主人和企鹅玩游泳游戏,企鹅健康值减少10,与主人亲密度增加5 0提示: Dog类添加CatChingFIyDiSCO方法,实现接飞盘功能Penguin类添加SWimming()方法,实现游泳功能,主人添加play(Pet Pet)方法如果Pet代表DOg就玩接飞盘游戏如果pet代表Penguin就玩游泳游戏实现步骤(1)绚DOg类添加CalChingFIyDiSC()方法,实现接飞盘功能。 修改Dog类/* 实现接飞盘方法* /public void CatchingFlyDisc() SyStem. out.Println (狗狗,+ super. getN

11、ame () + ”正在接飞盘。,);super. SetHealth (super.getHealth () -10) ; /健康值减少 10super. setLove (super.getLove () +5) /亲密度增加5(2)给PengUin类添加SWimming()方法,实现游泳功能。修改enguin类/* 实现游泳方法* /public void swimming () SyStem. out.printin (企鹅,+ super. getName () + ”正在游泳。,); super. setHealth (super. getHealth () -10) ;/健康值减

12、少 Io super. setLove (super. getLove ()+5) ; /亲密度增加5)(3)给.主人添加play(Pet Pel)方法,如果pet代表Dog就玩接飞盘游戏;如果pet代表Penguin 就玩游泳游戏。修改噩如蜀类/* 主人与宠物玩耍* /public void play(Pet pet) if (pet instanceof DOg) /如果传入的是狗狗DOg dog = (Dog) pet;dog.CatchingFlyDisc(); )else if (pet instanceof Penguin) /如果传入的是企鹅Penguin pgn = (Peng

13、uin) pet;pgn. swimming (); )(4)编写测试类,在test包下新建TeStChO302.java package cn.jbit. epet. test;import cn.jbit.epet.ch03.Dog;import cn.jbit.epet.ch03.Master;import cn.jbit. epet.ch03. Penguin;/ * *测试类,领养宠物并玩耍。*/public class Testch0302 public static void main(String args) Dog dog = new Dog(“欧欧“,“雪娜瑞”); Pen

14、guin pgn = new PengUin(楠楠,Q妹”); Master master=new Master (E5fc.z 100); master .play (dog) ; /狗狗接飞盘 master .play (pgn); 企鹅游运行结果如下:执行宠物的有参构造方法。 执行宠物的有参构造方法。 狗狗欧欧正在接飞盘。企鹅楠楠正在游泳。上机练习三、计算一次租赁多辆汽车的总租金O训练要点:多态的使用使用父类类型作为方法参数O需求说明:在前面汽车租赁系统的基础上,实现计算多种车辆总租金的功能现在有客户租用: 2辆宝马1 1辆别克商务舱 1辆金龙(34)座租5天共多少租金?参考实现步骤:1、在这里我们复用第二章的代码,在cn.jbit.car包下新建一个顾客类CUStOmer,提供 CalCTotalRent(MOtoVehiCIemOtos, int days)方法(参数 MOtOVehiCIe 代表汽车的父类),传入 的参数是客户租赁的汽车列表信息和租赁天数,在方法中调用相应汽车的计算租金的方法 ca!rRent(int days)方法得到相应租赁价,求和计算出多输汽车总租赁价格。代码如下:package cn.jbit.car;/ *客户类。*/public class Customer String id;/客户编号 Strin

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服