我正在编写一个创建动物的程序,需要一些帮助来创建一种方法,当健康,能量或饥饿程度降至20以下时,程序将打印出该动物的噪音。有一种超级动物,我正在养狗。
以下是动物类代码的示例:
public void setHungry(int Hungry) {
this.Hungry = Hungry;
如何编写方法,以便如果饥饿率降至20以下,程序将:
if (Hungry <= 20)
System.out.println ("Grunt");
我没有很多编码经验。 提前谢谢
我忘了提到这是一个小组任务,我不能改变动物类
答案 0 :(得分:1)
Animal.java
public abstract class Animal {
private int hungry;
public void setHungry(int hungry) {
this.hungry = hungry;
if(this.hungry <= 20) {
this.shout();
}
}
public abstract void shout();
}
Lion.java
public class Lion extends Animal {
@Override
public abstract void shout() {
System.out.println("GRRRRR");
}
}
编辑:考虑到动物无法触及你应该在你的子类中更改setHungry的定义。我假设你有价值的吸气剂?或者价值受到保护?
public class Lion extends Animal {
@Override
public void setHungry(int hungry) {
super.setHungry(hungry);
if(this.getHungry() <= 20) {
System.out.println("GRRRRR");
}
}
}
答案 1 :(得分:0)
托马斯&#39;方法是有效的,但如果您需要在其他地方进行此检查,请让我建议另一种解决方案。
public abstract class Animal {
int hunger;
int energy;
int health;
public void makeNoise() {
if (hunger < 20 || energy < 20 || health < 20) {
System.out.println(getVoice());
}
}
abstract protected String getVoice();
}
public class Lion extends Animal {
String voice = "Grr";
@Override
protected String getVoice() {
return voice;
}
}