题目:16版.饲养员喂养动物

news/2024/7/21 8:32:21 标签: java, jvm, servlet

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方法。

java">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("新疆虎");
    }
}
java">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);
    }

}
java">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("华南虎");
    }
}


http://www.niftyadmin.cn/n/289555.html

相关文章

一百零七、MySQL数据库的数据备份与数据恢复

MySQL数据库的数据备份与恢复主要有3种方法&#xff0c;前两种都是MySQL dump命令&#xff0c;第三种则是用Navicat工具直接备份。相比而言&#xff0c;第三种方法更加简单&#xff01; 1 方法一&#xff08;MySQL dump命令&#xff09; 1.1 登录MySQL [roothurys22 ~]# mysq…

【id:30】【20分】C. 点和圆 (类与对象)

文章目录 一、题目描述二、输入与输出1.输入2.输出 三、参考代码四、题解思路 一、题目描述 设计一个点类Point&#xff0c;包含属性&#xff1a;x坐标和y坐标&#xff0c;方法&#xff1a;设定坐标&#xff08;setPoint&#xff09;&#xff0c;获取x坐标&#xff08;getX&am…

网络应用基础 ——(2023新星计划文章一)

一&#xff0c;网络的概念 1.1网络及其带来的好处 &#xff08;1&#xff09;计算机网络是指通过通信设备和通信线路将多台计算机连接起来&#xff0c;以便实现资源共享、信息传递和协同工作的技术和系统。计算机网络是现代信息技术的重要组成部分&#xff0c;已经深入到我们…

ChatGPT镜像网站【免费白嫖】

文章目录 前言说明网站 前言 ChatGPT是一种基于OpenAI GPT&#xff08;Generative Pretrained Transformer&#xff09;模型的聊天机器人&#xff0c;它可以对用户提出的问题做出回答&#xff0c;同时还能够进行精准的语言理解和回复&#xff0c;较好地满足了人们与机器人之间…

Linux网络编程:三次握手 四次挥手

1. 三次握手 建立TCP可靠连接&#xff0c;只能是客户端先发起。 &#xff08;1&#xff09;SYN标志位为1&#xff0c;表示请求建立连接&#xff1b;ACK标志位为1&#xff0c;表示确认收到对方报文。 &#xff08;2&#xff09;seq为数据包序列号&#xff0c;ack为确认序列号。…

Redis在大规模分布式系统的应用与优化

Redis在大规模分布式系统的应用与优化 一、Redis在大规模分布式系统中的应用在分布式缓存中的应用1. 缓存击穿 缓存雪崩 缓存穿透 的应用缓存击穿缓存雪崩缓存穿透 2. Redis缓存的过期与持久化策略缓存过期策略缓存持久化策略 3. Redis缓存数据的清理与回收机制 在分布式会话共…

SpringMVC详细介绍和@RequestMapping详细使用说明

目录 SpringMVC SpringMVC 介绍 说明是 MVC MVC 全称∶ Model 模型、View 视图、 Controller 控制器。 MVC 是一种思想 MVC 示意图 理解和解读 SpringMVC 特点&概述 梳理 Spring SpringMVC SpringBoot 的关系 SpringMVC-快速入门 SpringMVC 登录流程分析 SpringM…

【关于认证鉴权一些概念梳理】

关于认证鉴权一些概念梳理 记录一些灵感瞬间聊聊Session&#xff0c;Cookie和Token三剑客的特性前后端分离登录中的springsecurity与不分离的异同三更up关于springSecurity的讲解B站知乎上关于springSecurity的讲解掘金大佬SpringSecurityJWT认证流程解析一个权限对应一个资源&…