鱼C论坛

 找回密码
 立即注册
查看: 590|回复: 1

[已解决]求助

[复制链接]
发表于 2023-12-2 20:42:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
自然保护区通过保护自然环境,促进可持续发展,保护生态系统,维护生物多样性,促进经济发展,提高生活质量。保护自然环境对人类的生存和发展都非常重要,自然保护区有助于保护生态系统,维护生物多样性,实现生态、经济、社会的可持续发展。
    在该背景下,保护区的动物物种在不断的增加,需要的食物种类也会不断发生变化。动物饲养员需要准备不同的食物喂养不同的动物,动物吃上饲养员为他们准备的特供食物后,会表达他们的感谢,请模拟该环境,采用面向对象设计思想,进行合理的设计,通过java代码编写程序完成裁判程序的需求。

### 裁判测试程序样例:
```Java
在这里给出函数被调用进行测试的例子。例如:
public class Main {

    public static void main(String[] args) {
        String feederName;
        String animalName;

        Scanner scanner =new Scanner(System.in);
        feederName = scanner.nextLine();//中国人
        Feeder feeder = new Feeder(feederName);

        animalName = scanner.nextLine();//华南虎
        Tiger tiger = new Tiger(animalName);//创建一只老虎
        tiger.setFeeder(feeder);//指定其饲养人员
        Food foodMeat = new Meat();//准备食物
        feeder.feed(tiger, foodMeat);//饲养员喂养动物食物

        animalName = scanner.nextLine();//藏羚羊
        Goat goat = new Goat(animalName);//创建一只羊
        goat.setFeeder(feeder);//指定其饲养人员
        Grass foodGrass = new Grass();//准备食物
        feeder.feed(goat, foodGrass);//饲养员喂养动物食物
    }
}
/* 请在这里填写答案 */
输入样例:
在这里给出一组输入。例如:

中国人
华南虎
藏羚羊
输出样例:
在这里给出相应的输出。例如:

华南虎正在咬着香喷喷的肉肉   亲爱的中国人,太感谢你了!
藏羚羊正在咬着香喷喷的小青草   亲爱的中国人,太感谢你了!
最佳答案
2023-12-2 20:43:17
根据题目的需求,我们需要设计一个动物饲养员类(Feeder)和几个动物类(比如老虎、羊),并实现它们之间的关系。

首先,我们可以定义一个抽象的动物类(Animal),其中包含动物的name属性和feeder属性,以及一个抽象的方法eat()用于各个动物类实现自己的吃食行为。
public abstract class Animal {    private String name;    private Feeder feeder;      public Animal(String name) {        this.name = name;    }      public void setFeeder(Feeder feeder) {        this.feeder = feeder;    }      public abstract void eat(Food food);}
然后我们可以定义具体的动物类,比如老虎类(Tiger)和羊类(Goat),它们继承自动物类,并且实现自己的eat()方法。
public class Tiger extends Animal {    public Tiger(String name) {        super(name);    }      @Override    public void eat(Food food) {        System.out.println(getName() + "正在咬着香喷喷的" + food.getName());        getFeeder().thank();    }}public class Goat extends Animal {    public Goat(String name) {        super(name);    }      @Override    public void eat(Food food) {        System.out.println(getName() + "正在咬着香喷喷的" + food.getName());        getFeeder().thank();    }}
接下来,我们定义一个饲养员类(Feeder),它有一个name属性和一个feed()方法用于喂养动物。
public class Feeder {    private String name;      public Feeder(String name) {        this.name = name;    }      public void feed(Animal animal, Food food) {        animal.eat(food);    }      public void thank() {        System.out.println("亲爱的" + getName() + ",太感谢你了!");    }      public String getName() {        return name;    }}
最后,我们可以在测试程序中创建动物饲养员和动物对象,并调用feed()方法进行喂食。根据裁判测试程序样例,可以按照以下方式编写主函数:
public class Main {    public static void main(String[] args) {        String feederName;        String animalName;        Scanner scanner = new Scanner(System.in);        feederName = scanner.nextLine();// 中国人        Feeder feeder = new Feeder(feederName);        animalName = scanner.nextLine();// 华南虎        Tiger tiger = new Tiger(animalName);// 创建一只老虎        tiger.setFeeder(feeder);// 指定其饲养人员        Food foodMeat = new Meat();// 准备食物        feeder.feed(tiger, foodMeat);// 饲养员喂养动物食物        animalName = scanner.nextLine();// 藏羚羊        Goat goat = new Goat(animalName);// 创建一只羊        goat.setFeeder(feeder);// 指定其饲养人员        Grass foodGrass = new Grass();// 准备食物        feeder.feed(goat, foodGrass);// 饲养员喂养动物食物    }}
这样,当运行程序时,你可以输入饲养员的名字、各个动物的名字,并根据饲养员为动物准备的食物进行喂食操作。程序会输出相应的结果。

希望这个例子对你有所帮助!

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-2 20:43:17 | 显示全部楼层    本楼为最佳答案   
根据题目的需求,我们需要设计一个动物饲养员类(Feeder)和几个动物类(比如老虎、羊),并实现它们之间的关系。

首先,我们可以定义一个抽象的动物类(Animal),其中包含动物的name属性和feeder属性,以及一个抽象的方法eat()用于各个动物类实现自己的吃食行为。
public abstract class Animal {    private String name;    private Feeder feeder;      public Animal(String name) {        this.name = name;    }      public void setFeeder(Feeder feeder) {        this.feeder = feeder;    }      public abstract void eat(Food food);}
然后我们可以定义具体的动物类,比如老虎类(Tiger)和羊类(Goat),它们继承自动物类,并且实现自己的eat()方法。
public class Tiger extends Animal {    public Tiger(String name) {        super(name);    }      @Override    public void eat(Food food) {        System.out.println(getName() + "正在咬着香喷喷的" + food.getName());        getFeeder().thank();    }}public class Goat extends Animal {    public Goat(String name) {        super(name);    }      @Override    public void eat(Food food) {        System.out.println(getName() + "正在咬着香喷喷的" + food.getName());        getFeeder().thank();    }}
接下来,我们定义一个饲养员类(Feeder),它有一个name属性和一个feed()方法用于喂养动物。
public class Feeder {    private String name;      public Feeder(String name) {        this.name = name;    }      public void feed(Animal animal, Food food) {        animal.eat(food);    }      public void thank() {        System.out.println("亲爱的" + getName() + ",太感谢你了!");    }      public String getName() {        return name;    }}
最后,我们可以在测试程序中创建动物饲养员和动物对象,并调用feed()方法进行喂食。根据裁判测试程序样例,可以按照以下方式编写主函数:
public class Main {    public static void main(String[] args) {        String feederName;        String animalName;        Scanner scanner = new Scanner(System.in);        feederName = scanner.nextLine();// 中国人        Feeder feeder = new Feeder(feederName);        animalName = scanner.nextLine();// 华南虎        Tiger tiger = new Tiger(animalName);// 创建一只老虎        tiger.setFeeder(feeder);// 指定其饲养人员        Food foodMeat = new Meat();// 准备食物        feeder.feed(tiger, foodMeat);// 饲养员喂养动物食物        animalName = scanner.nextLine();// 藏羚羊        Goat goat = new Goat(animalName);// 创建一只羊        goat.setFeeder(feeder);// 指定其饲养人员        Grass foodGrass = new Grass();// 准备食物        feeder.feed(goat, foodGrass);// 饲养员喂养动物食物    }}
这样,当运行程序时,你可以输入饲养员的名字、各个动物的名字,并根据饲养员为动物准备的食物进行喂食操作。程序会输出相应的结果。

希望这个例子对你有所帮助!

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 20:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表