鱼C论坛

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

[已解决]求助

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

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

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

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

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

  2.     public static void main(String[] args) {
  3.         String feederName;
  4.         String animalName;

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

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

  13.         animalName = scanner.nextLine();//藏羚羊
  14.         Goat goat = new Goat(animalName);//创建一只羊
  15.         goat.setFeeder(feeder);//指定其饲养人员
  16.         Grass foodGrass = new Grass();//准备食物
  17.         feeder.feed(goat, foodGrass);//饲养员喂养动物食物
  18.     }
  19. }
  20. /* 请在这里填写答案 */
复制代码

输入样例:
在这里给出一组输入。例如:

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

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

首先,我们可以定义一个抽象的动物类(Animal),其中包含动物的name属性和feeder属性,以及一个抽象的方法eat()用于各个动物类实现自己的吃食行为。
  1. public abstract class Animal {
  2.     private String name;
  3.     private Feeder feeder;
  4.   
  5.     public Animal(String name) {
  6.         this.name = name;
  7.     }
  8.   
  9.     public void setFeeder(Feeder feeder) {
  10.         this.feeder = feeder;
  11.     }
  12.   
  13.     public abstract void eat(Food food);
  14. }
复制代码

然后我们可以定义具体的动物类,比如老虎类(Tiger)和羊类(Goat),它们继承自动物类,并且实现自己的eat()方法。
  1. public class Tiger extends Animal {
  2.     public Tiger(String name) {
  3.         super(name);
  4.     }
  5.   
  6.     @Override
  7.     public void eat(Food food) {
  8.         System.out.println(getName() + "正在咬着香喷喷的" + food.getName());
  9.         getFeeder().thank();
  10.     }
  11. }
  12. public class Goat extends Animal {
  13.     public Goat(String name) {
  14.         super(name);
  15.     }
  16.   
  17.     @Override
  18.     public void eat(Food food) {
  19.         System.out.println(getName() + "正在咬着香喷喷的" + food.getName());
  20.         getFeeder().thank();
  21.     }
  22. }
复制代码

接下来,我们定义一个饲养员类(Feeder),它有一个name属性和一个feed()方法用于喂养动物。
  1. public class Feeder {
  2.     private String name;
  3.   
  4.     public Feeder(String name) {
  5.         this.name = name;
  6.     }
  7.   
  8.     public void feed(Animal animal, Food food) {
  9.         animal.eat(food);
  10.     }
  11.   
  12.     public void thank() {
  13.         System.out.println("亲爱的" + getName() + ",太感谢你了!");
  14.     }
  15.   
  16.     public String getName() {
  17.         return name;
  18.     }
  19. }
复制代码

最后,我们可以在测试程序中创建动物饲养员和动物对象,并调用feed()方法进行喂食。根据裁判测试程序样例,可以按照以下方式编写主函数:
  1. public class Main {
  2.     public static void main(String[] args) {
  3.         String feederName;
  4.         String animalName;
  5.         Scanner scanner = new Scanner(System.in);
  6.         feederName = scanner.nextLine();// 中国人
  7.         Feeder feeder = new Feeder(feederName);
  8.         animalName = scanner.nextLine();// 华南虎
  9.         Tiger tiger = new Tiger(animalName);// 创建一只老虎
  10.         tiger.setFeeder(feeder);// 指定其饲养人员
  11.         Food foodMeat = new Meat();// 准备食物
  12.         feeder.feed(tiger, foodMeat);// 饲养员喂养动物食物
  13.         animalName = scanner.nextLine();// 藏羚羊
  14.         Goat goat = new Goat(animalName);// 创建一只羊
  15.         goat.setFeeder(feeder);// 指定其饲养人员
  16.         Grass foodGrass = new Grass();// 准备食物
  17.         feeder.feed(goat, foodGrass);// 饲养员喂养动物食物
  18.     }
  19. }
复制代码

这样,当运行程序时,你可以输入饲养员的名字、各个动物的名字,并根据饲养员为动物准备的食物进行喂食操作。程序会输出相应的结果。

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

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

使用道具 举报

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

首先,我们可以定义一个抽象的动物类(Animal),其中包含动物的name属性和feeder属性,以及一个抽象的方法eat()用于各个动物类实现自己的吃食行为。
  1. public abstract class Animal {
  2.     private String name;
  3.     private Feeder feeder;
  4.   
  5.     public Animal(String name) {
  6.         this.name = name;
  7.     }
  8.   
  9.     public void setFeeder(Feeder feeder) {
  10.         this.feeder = feeder;
  11.     }
  12.   
  13.     public abstract void eat(Food food);
  14. }
复制代码

然后我们可以定义具体的动物类,比如老虎类(Tiger)和羊类(Goat),它们继承自动物类,并且实现自己的eat()方法。
  1. public class Tiger extends Animal {
  2.     public Tiger(String name) {
  3.         super(name);
  4.     }
  5.   
  6.     @Override
  7.     public void eat(Food food) {
  8.         System.out.println(getName() + "正在咬着香喷喷的" + food.getName());
  9.         getFeeder().thank();
  10.     }
  11. }
  12. public class Goat extends Animal {
  13.     public Goat(String name) {
  14.         super(name);
  15.     }
  16.   
  17.     @Override
  18.     public void eat(Food food) {
  19.         System.out.println(getName() + "正在咬着香喷喷的" + food.getName());
  20.         getFeeder().thank();
  21.     }
  22. }
复制代码

接下来,我们定义一个饲养员类(Feeder),它有一个name属性和一个feed()方法用于喂养动物。
  1. public class Feeder {
  2.     private String name;
  3.   
  4.     public Feeder(String name) {
  5.         this.name = name;
  6.     }
  7.   
  8.     public void feed(Animal animal, Food food) {
  9.         animal.eat(food);
  10.     }
  11.   
  12.     public void thank() {
  13.         System.out.println("亲爱的" + getName() + ",太感谢你了!");
  14.     }
  15.   
  16.     public String getName() {
  17.         return name;
  18.     }
  19. }
复制代码

最后,我们可以在测试程序中创建动物饲养员和动物对象,并调用feed()方法进行喂食。根据裁判测试程序样例,可以按照以下方式编写主函数:
  1. public class Main {
  2.     public static void main(String[] args) {
  3.         String feederName;
  4.         String animalName;
  5.         Scanner scanner = new Scanner(System.in);
  6.         feederName = scanner.nextLine();// 中国人
  7.         Feeder feeder = new Feeder(feederName);
  8.         animalName = scanner.nextLine();// 华南虎
  9.         Tiger tiger = new Tiger(animalName);// 创建一只老虎
  10.         tiger.setFeeder(feeder);// 指定其饲养人员
  11.         Food foodMeat = new Meat();// 准备食物
  12.         feeder.feed(tiger, foodMeat);// 饲养员喂养动物食物
  13.         animalName = scanner.nextLine();// 藏羚羊
  14.         Goat goat = new Goat(animalName);// 创建一只羊
  15.         goat.setFeeder(feeder);// 指定其饲养人员
  16.         Grass foodGrass = new Grass();// 准备食物
  17.         feeder.feed(goat, foodGrass);// 饲养员喂养动物食物
  18.     }
  19. }
复制代码

这样,当运行程序时,你可以输入饲养员的名字、各个动物的名字,并根据饲养员为动物准备的食物进行喂食操作。程序会输出相应的结果。

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 07:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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