当前位置: 首页 > news >正文

港海建设网站兰州网站建设加q.479185700

港海建设网站,兰州网站建设加q.479185700,全球中文网站排名,免费空间访客领取网站【案例4-2】饲养员喂养动物 记得 关注#xff0c;收藏#xff0c;评论哦#xff0c;作者将持续更新。。。。 【案例目标】 案例描述 饲养员在给动物喂食时#xff0c;给不同的动物喂不同的食物#xff0c;而且在每次喂食时#xff0c;动物都会发出欢快的叫声。例如…【案例4-2】饲养员喂养动物 记得 关注收藏评论哦作者将持续更新。。。。 【案例目标】 案例描述 饲养员在给动物喂食时给不同的动物喂不同的食物而且在每次喂食时动物都会发出欢快的叫声。例如给小狗喂骨头小狗会汪汪叫给小猫喂食小猫会喵喵叫。 本案例要求编写一个程序模拟饲养员喂食动物的过程案例要求如下 饲养员给小狗喂骨头小狗汪汪叫。饲养员给小猫喂小鱼小猫喵喵叫。 运行结果【案例分析】 在这个动物园里涉及的对象有饲养员各种不同动物以及各种不同的食物。这样很容易抽象出3个类Feeder、Animal和Food。假设只考虑猫类和狗类动物则由Animal类派生出Cat类、Dog类、同样由Food类可以进一步派生出其子类Bone、Fish。因为他们之间存在这明显的is-a关系。 同样的鱼是一种食物但实际上鱼也是一种动物Cat类和Dog类继承了Animal的很多属性和方法如果将Animal定义为接口Animal中是不能定义成员变量和成员方法的Food类中虽然也有变量但是数量比Animal少所以我们考虑将Food定义为接口此时可以说“鱼是一种动物同时也是一种食物”。 【案例实现】 Animal.java public abstract class Animal {    private String name;    public Animal(String name) {        this.name name;    }    public abstract void shout();    public abstract void eat(Food food);    public String getName() {        return name;    }    public void setName(String name) {        this.name name;    }} 上述代码中定义了抽象类Animal第4行代码声明了动物名称name第7~13行代码提供了name的getter和setter方法。同时编写了动物发声的抽象方法shout()和动物吃饭的抽象方法eat()。 Dog.java public class Dog extends Animal {    public Dog(String name) {        super(name);    }        Override    public void shout() {        System.out.print (汪汪汪~~~);    }    Overridepublic void eat(Food food) {    System.out.println(getName() 正在啃着香喷喷的 food.getName()); }} 上述代码中定义了Dog类并继承了Animal类第 2~4行代码是在Dog类中定义类构造方法并在构造方法中调用了父类的构造方法。第6~12行代码重写了父类Animal动物发声的抽象方法shout()和动物吃饭的抽象方法eat()。                                                                                                Cat.java public class Cat extends Animal{    public Cat(String name) {        super(name);    }    public void shout() {        System.out.print(喵喵喵~~~);    }    public void eat(Food food) {        System.out.println(getName() 正在吃着香喷喷的food.getName());}} 上述代码中定义了Cat类并继承了Animal类第2~4行代码是在Cat类中定义类构造方法并在构造方法中调用了父类的构造方法。第5~10行代码重写了父类Animal动物发声的抽象方法shout()和动物吃饭的抽象方法eat()。                                                                                                Food.java public interface Food {    public abstract String getName();} 上述代码中定义了一个Food接口在接口中编写了一个抽象方法getName()。 Bone.java public class Bone implements Food{    Override    public String getName() {        return 骨头;    }} 上述代码中定义了一个Bone类并实现了Food接口在Bone类中实现了Food接口的getName()方法。 Fish.java public class Fish extends Animal implements Food{    public Fish(String name) {        super(name);    }    Override    public void shout() {    }    Override    public void eat(Food food) {}} 上述代码中定义了一个Fish类Fish类继承了Animal类并实现了Food接口第2~4行代码是在Fish类中定义了构造方法并在构造方法中调用了父类Food的构造方法第5~10行代码是继承了Animal类的shout()方法和eat()方法。 Feeder.java public class Feeder {    private String name;    public Feeder(String name) {        this.name name;    }    public void speak() {        System.out.println(欢迎来到动物园);        System.out.println(我是饲养员 getName());    }    public void feed(Animal a, Food food) {        a.eat(food);    }    public String getName() {        return name;    }    public void setName(String name) {        this.name name;    }} 上述代码中定义了一个Feader类Feader类中声明了饲养员名称name并提供了name属性的getter和setter方法定义了构造方法同时第6~12行代码编写了饲养员说话的speak()方法和饲养动物的feed()方法。 DongWuTest.java public class DongWuTest {    public static void main(String[] args) {        Feeder feeder new Feeder(小华);        feeder.speak();        Dog dog new Dog(小狗);        dog.shout();        Food food new Bone();        feeder.feed(dog, food);        Cat cat new Cat(小猫);   cat.shout();   food new Fish(黄花鱼);   feeder.feed(cat, food);    }} 上述代码中定义了一个测试类DongWuTest第3~4行代码是在DongWuTest类中创建了一个feeder对象并调用了饲养员说话的方法speak()然后第7~12行代码是创建了food对象、dog对象和cat对象并在创建dog和cat对象时传入动物的名称最后通过feeder对象调用feed()方法模拟饲养员喂养动物分别通过dog和cat对象调用shout()方法模拟动物发声。
http://www.hkea.cn/news/14491818/

相关文章:

  • 网站公司怎么做的h5商城网站开发
  • 网站优化 seo和sem网站开发名片
  • 小白网站建设教程谷歌seo优化是什么
  • 网站开发毕业答辩个人网站推广 公司
  • 重庆定制网站建设地址html访问wordpress
  • 网站如何定位网站建设需要的设备
  • 网站建设前期新浦网站制作
  • 如何构建自己的网站苏州网站创建
  • 东营网站湛江vi设计公司
  • 现在哪些做进口商品的电商网站海外精品网站建设
  • 企业网站设计与建设北京营销公司比较好的
  • 网站开发前台代码和后台代码wordpress 改变滑页
  • 一站式做网站系统wordpress取消邮箱验证
  • html5怎么做二手网站黄页88网注册
  • 新乡网站建设设计公司哪家好wordpress查看自己网站的ip量
  • 通辽网站开发招聘网页版微信登录入口密码登录
  • 做系统网站赚钱中国作风建设门户网站
  • asp网站怎么运行40个常见的html标签及含义
  • 找制作网站公司河北秦皇岛黄金海岸
  • 汕头网站建设制作公司平台及服务是什么
  • 托里县城乡建设局网站网站建设 案例展示
  • 电子手表网站wordpress打开只显示代码
  • 天津手动网站建设调试亿网域名
  • 推广网站的步骤电子商务网站建设毕业设计
  • ui设计在哪个网站可以接做校园网站建设申请报告
  • 过期域名查询网站网站建设 三合一
  • 门户网站后台管理模板wordpress 添加证书
  • 深圳化妆品网站建设万网的网站怎么建设
  • 强化门户网站建设网站编辑是什么
  • 学做吃的网站有哪些做个小型购物网站要多少钱