【发布时间】:2018-02-01 02:16:42
【问题描述】:
我创建了一个名为 Creature 的抽象类和两个扩展名为 Human 和 Dog 的 Creature 的类。还有一些方法,比如getAge和setAge,你可以看到:
public abstract class Creature {
public abstract void born(String name);
public abstract void setName(String name);
public abstract void setAge(int age);
public abstract int getAge();
public abstract String getName();
}
public class Human extends Creature {
private String name;
private int age;
public void born(String name){
setName(name);
setAge(0);
}
// getters and setters
}
public class Dog extends Creature {
private String name;
private int age;
public void born(String name){
setName(name);
setAge(0);
}
// getters and setters
}
然后我做了这个:
private static Creature creature;
String string = new Random().nextInt(2) == 1 ? "Human" : "Dog";
if (string.equals("Human")) {
setCreature(new Human());
} else {
setCreature(new Dog());
}
for (int i = 0; i < 5; i++) {
creature.born("Name" + i);
// here are born 5 creatures
}
// after one year get all creatures and set their age +1
我的问题是,我怎样才能让所有生物出生并在一年后将它们的年龄设置为 +1?
【问题讨论】:
-
您对一年的定义是什么?您想使用调度程序增加年龄字段吗?
-
你想在没有坚持的情况下达到你的目标吗?
-
不,我只是想让所有的生物都出生,然后用另一种方法立即增加它们的年龄。
-
你可以稍微反思一下,并管理你的代码以避免代码重复,因为getetr abd setter是相同的,并且可能在父类中
-
你认为你在那个 for 循环中创造了多少生物?