1、实验要求

本实验要求:本实验以饲养员喂养老虎为业务背景,体验“函数重载”的价值。

1-1. 业务说明:

1-1.1. 本实验以动物园饲养员喂养动物为业务背景;

1-1.2. 动物园的饲养员最多管理三只老虎;

1-1.3. 饲养员可以一次喂养所有老虎;

1-1.4. 饲养员也可以根据老虎类型仅喂养某只指定的老虎。

1-2. 创建工程并配置环境:

1-2.1. 限制1. 创建实验工程,命名为:SE_JAVA_EXP_E031;

1-2.2. 限制2. 创建包,命名为:cn.campsg.java.experiment;

1-2.3. 限制3. 创建包,命名为:cn.campsg.java.experiment.entity。

1-3. 创建老虎实体类及其相关属性与方法:

1-3.1. 限制1. 在cn.campsg.java.experiment.entity 包中创建老虎类:Tiger;

1-3.2. 为老虎类创建属性,老虎的类型:字符串类型;

1-3.3. 为老虎类的类型属性添加getter/setter方法;

1-3.4. 为老虎类创建吃饭方法:

1)限制1. 函数取名:eat。

2)限制2. eat函数可设定为0参,无返回公共函数。

1-3.5. eat方法需根据老虎的类型显示饲养员的喂养情况,状态如下:

1) 老虎类型是“华南虎”时,喂食“牛肉”;

2) 老虎类型是“东北虎”时,喂食“猪肉”;

3) 老虎类型是“新疆虎”时,喂食“羊肉”。

1-3.6. eat方法被调用时,需要向控制台输出如下喂养信息:

"饲养员喂" + 老虎类型 + "吃" + eat方法判断所得的食物。

1-4. 创建饲养员业务实现类:

1-4.1. 限制1. 在cn.campsg.java.experiment.entity包中创建饲养员类:Feeder;

1-4.2. 设定饲养员管理的老虎数量与类型:

1)新建饲养员时,为饲养员设置三只待喂养的老虎,以对象数组的形式实现。

2)三只老虎的类型分别为:华南虎、东北虎、新疆虎。

1-5. 重载不同的喂养方法:

1-5.1. 创建指定类型老虎的喂养方法:

1)限制1. 函数取名:feed。

2)限制2. feed函数带有1个字符串类型参数:老虎类型。

3)限制3. feed函数可设定为无返回公共函数。

4)该函数根据参数,访问指定类型老虎的吃饭方法(eat),实施喂养。

1-5.2. 创建所有类型老虎的喂养方法:

1)限制1. 函数取名:feed。

2)限制2. feed函数没有参数。

3)限制3. feed函数可设定为无返回公共函数。

4)该函数要求调用所有受饲养员管理的老虎的吃饭方法(eat),实施喂养。

1-6. 测试饲养员不同的喂养方式:

1-6.1. 限制1. 在包cn.campsg.java.experiment中创建主类:MainClass;

1-6.2. 在main函数中创建饲养员,并调用1参feed函数喂养华南虎。

1-6.3. 在main函数中调用0参feed函数喂养饲养员管理的所有老虎。

2、实现思路

2-1. 按实验要求创建工程并配置环境。

2-2. 创建老虎实体类及其相关属性:

2-2.1. 在cn.campsg.java.experiment.entity 包中创建老虎实体类:Tiger;

2-2.2. 定义私有属性成员变量,类型:String type;

2-2.3. 为type添加getter/setter方法。

2-2.4. 创建老虎类的2个构造体:

1)第一个构造体为0参默认构造函数;

2)第二个构造体为1参构造函数,参数类型为字符串,需对老虎类型赋值。

2-2.5. 根据实验要求,实现老虎类的吃饭方法eat:

1)在方法内定义食物变量: stuff;

2)根据老虎的类型,为食物变量赋值,判定规则如下:

老虎类型为“华南虎”时,stuff值为“牛肉”;

老虎类型为“新疆虎”时,stuff值为“羊肉”;

老虎类型为“东北虎”时,stuff值为“猪肉”。

3)控制台输出老虎对象吃饭的信息,信息格式如下:

"饲养员喂" + type + "吃" + stuff。

2-3. 创建饲养员业务实现类:

2-3.1. 在cn.campsg.java.experiment.entity包中创建饲养员业务类:Feeder;

2-3.2. 为Feeder类创建默认构造体:

1)在构造体内创建Tiger对象数组,数组可定义为Feeder类的成员变量。

2)依次初始化Tiger对象数组中的成员为:华南虎、东北虎、新疆虎对象。

2-4. 重载不同的喂养方法:

2-4.1. 创建指定类型老虎的喂养方法,函数形式如下:

 + 提示

public void feed(String type){

}

1)循环饲养员类中的Tiger数组,判断其成员的类型属性是否与参数一致。

2)如果参数不为null,并且Tiger数组中成员的类型属性与参数一致,那么调用该成员的eat方法,实现喂养。

2-4.2. 创建所有类型老虎的喂养方法,函数形式如下:

+ 提示

 public void feed(){

}

1)可直接调用指定类型老虎的喂养函数:feed(String type)。

2)喂养函数调用时,参数可设定为null。

 + 技术常识

1)在实际生产环境中,重载函数之间通常相互调用,以增加业务函数的维护性。

2)本实验,0参feed正是利用了1参feed的判null逻辑,实现了所有类型的老虎喂养,而不是重复地调用eat函数。

2-5. 测试饲养员的不同喂养方式:

2-5.1. 在包cn.campsg.java.experiment中创建模拟喂养主类:MainClass

2-5.2. 在MainClass内创建main函数。

2-5.3. 在main函数中实现老虎喂养功能的测试:

1)创建饲养员对象。

2)所有类型老虎的喂养:调用饲养员的0参feed方法;

3)指定类型老虎的喂养(喂养华南虎):调用饲养员的1参feed方法。

package cn.campsg.java.experiment.entity;public class Feeder {public Tiger[] tiger=new Tiger[3];public Feeder() {for(int i=0;i<tiger.length;i++) {tiger[i]=new Tiger();}tiger[0].setType("华南虎");tiger[1].setType("东北虎");tiger[2].setType("新疆虎");}public void feed(String type) {for(int i=0;i<tiger.length;i++) {if (tiger[i].getType().equals(type)) { // 注意使用equals,不要用==,前者判断内容,后者判断地址tiger[i].eat();}}}public void feed() {feed("华南虎");feed("东北虎");feed("新疆虎");}
}
package cn.campsg.java.experiment.entity;public class Tiger {private String type;public String getType() {return type;}public void setType(String type) {this.type = type;}public Tiger(String type) {super();this.type = type;}public Tiger() {super();}public void eat() {String stuff="0";if(this.type=="华南虎")stuff="牛肉";if(this.type=="东北虎")stuff="猪肉";if(this.type=="新疆虎")stuff="羊肉";System.out.println("饲养员喂"+type+"吃"+stuff);}}
package cn.campsg.java.experiment;
import cn.campsg.java.experiment.entity.Feeder;
public class MainClass {public static void main(String[] args) {Feeder feeder=new Feeder();feeder.feed();feeder.feed("华南虎");}
}

题目:16版.饲养员喂养动物相关推荐

  1. 【java】饲养员喂养动物程序设计

    以动物园中饲养员给动物喂食为业务背景,让同学们体会"抽象类.类的继承.接口.接口实现类.方法重写和多态"等面向对象思想的综合应用. 动物园有饲养员,以及狗.猫这两种动物.饲养员给不 ...

  2. 【案例 4-2】饲养员喂养动物

    [案例目标] 案例描述 饲养员在给动物喂食时,给不同的动物喂不同的食物,而且在每次喂食时,动物都会发 出欢快的叫声.例如,给小狗喂骨头,小狗会汪汪叫:给小猫喂食,小猫会喵喵叫. 本案例要求编写一个程序 ...

  3. JAVA入门_继承与重载_饲养员喂养动物

    JAVA入门_继承与重载_饲养员喂养动物 实验要求 Tiger类 Feeder类 MainClass 运行结果 实验要求 本实验要求:本实验以饲养员喂养老虎为业务背景,体验"函数重载&quo ...

  4. 多态练习题(通过UML建模语言来实现饲养员喂养动物)

    项目需求如下图: package com.Summer_0428.cn; /*** @author Summer* 1.构建一个食物抽象类,Bone和Fish分别为其实现类,通过super传参.* 2 ...

  5. java基础案例 饲养员喂养动物

    案例描述 饲养员在给动物喂食时,给不同的动物喂不同的食物.例如,饲养员XXX拿着XX克bone喂养dog:饲养员XXX拿着XX克fish喂养cat. 本案例要求编写一个程序模拟饲养员喂食动物的过程,案 ...

  6. 基础Java练习16:学生喂养动物

    文章目录 一.创建动物类 编写程序 二.创建猫类 编写程序 三.创建狗类 编写代码 四. 创建鸟类 编写代码 五.创建学生类 编写代码 六.测试学生类 编写代码 七.运行测试学生类,查看结果 一.创建 ...

  7. 【案例4-2】饲养员喂养动物

    饲养员在给动物喂食时,给不同的动物喂不同的食物,而且在每次喂食时,动物都会发出欢快的叫声.例如,给小狗喂骨头,小狗会汪汪叫:给小猫喂食,小猫会喵喵叫. 本案例要求使用接口知识编写一个程序模拟饲养员喂食 ...

  8. [案例4-2]饲养员喂养动物

    案例描述 饲养员在给动物喂食时,给不同的动物喂不同的食物,而且在每次喂食时,动物都会发出欢快的叫声.例如,给小狗喂骨头,小狗会汪汪叫:给小猫喂食,小猫会喵喵叫. 本案例要求编写一个程序模拟饲养员喂食动 ...

  9. java基础案例4-2饲养员喂养动物

    package com.itheima;class Animal{void shout(){} }class Dog extends Animal{static void shout(String f ...

最新文章

  1. 吴恩达的Landing.ai又迎来一位AI大牛
  2. 苹果着手自研调制解调器,以应对高通天价专利费
  3. 物资管理系统c语言课程设计,C语言实现仓库物资管理系统
  4. 蛋白粉有什么作用?搭配这些食物帮助提升免疫力!
  5. 机器人 魂斗罗铁血兵团_《魂斗罗铁血兵团:反叛》XBLA游戏下载
  6. HTTP协议和HttpClient的入门
  7. newInstance() 和 new 有什么区别
  8. Cocos2d lua 破解方案集合
  9. 【行业专题报告】食品饮料、休闲零食、咖啡茶饮-专题资料
  10. 百度SEO站群超简约实惠的个人简历模板源码
  11. python TCP服务器v1.4 - 客户端连接服务器异常(异常情况分类)处理
  12. 冯扬文:基于数据仓库的集装箱运价信息集成研究
  13. mysql计算相关系数_用sql实现相关系数的计算
  14. 科技互联网都有啥热点信息?爬取虎嗅5万篇文章告诉你
  15. DP(Nietzsche)的hu测 T3(规律?主席树)
  16. html设置鼠标移入移出样式,鼠标移入移出_CSS3实现鼠标移入移出时改变样式的效果...
  17. 10个最好的照片分享网站
  18. 耿丹CS16-2班第四次作业汇总
  19. gentoo安装全过程
  20. 创新,有时是不经意间开放的花朵——访2013 CCF青年科学家奖获得者朱军

热门文章

  1. iview自定义Tree组件内容
  2. 蚂蚁p8多少股票_阿里P8收入有多高?满足大家的好奇,司龄不足10年,税前330万...
  3. 小米M1刷机包 乐蛙ROM第122期 技术顺畅开发版
  4. html5之video标签支持的视频格式
  5. httpclient使用系列
  6. 技术解读倚天 ECS 实例 — Arm 芯片的 Python-AI 算力优化
  7. 洛阳360全景图制作,洛阳vr全景拍摄价格
  8. 数理方程的求解——定解问题的介绍
  9. U盘使用TransMac软件格式化之后用不了,已解决!
  10. 一道大厂Python面试题,4种解法,从青铜到王者引发的“思考”!