乔治爱啃脚趾 发表于 2023-12-2 20:42:52

求助

自然保护区通过保护自然环境,促进可持续发展,保护生态系统,维护生物多样性,促进经济发展,提高生活质量。保护自然环境对人类的生存和发展都非常重要,自然保护区有助于保护生态系统,维护生物多样性,实现生态、经济、社会的可持续发展。
    在该背景下,保护区的动物物种在不断的增加,需要的食物种类也会不断发生变化。动物饲养员需要准备不同的食物喂养不同的动物,动物吃上饲养员为他们准备的特供食物后,会表达他们的感谢,请模拟该环境,采用面向对象设计思想,进行合理的设计,通过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);//饲养员喂养动物食物
    }
}
/* 请在这里填写答案 */
输入样例:
在这里给出一组输入。例如:

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

华南虎正在咬着香喷喷的肉肉   亲爱的中国人,太感谢你了!
藏羚羊正在咬着香喷喷的小青草   亲爱的中国人,太感谢你了!

FishC_GPT 发表于 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官方接口),如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 求助