用面相对象思想实现Java实现农夫养牛问题:一头牛1岁时生两只牛,从第一只开始,10年能有多少只
时间: 2023-05-31 16:01:37 浏览: 148
牛?
(1)定义对象:牛(niu)
(2)属性:年龄(age)
(3)方法:生小牛(giveBirth)
代码实现:
```
public class Niu {
private int age;
public Niu(int age) {
this.age = age;
}
public void giveBirth(List<Niu> niuList) {
if (age >= 1 && age <= 10) {
niuList.add(new Niu(0));
niuList.add(new Niu(0));
}
}
public static void main(String[] args) {
List<Niu> niuList = new ArrayList<>();
niuList.add(new Niu(1));
for (int i = 1; i <= 10; i++) {
List<Niu> newNiuList = new ArrayList<>();
for (Niu niu : niuList) {
niu.giveBirth(newNiuList);
}
niuList.addAll(newNiuList);
}
System.out.println(niuList.size());
}
}
```
解释:
1. 创建一个List集合,用于存放牛对象;
2. 初始化一头1岁的牛,加入到List集合中;
3. 循环10年,每年都遍历List集合中的每一头牛,如果牛的年龄在1到10岁之间,就调用它的giveBirth方法,生成两头新牛,并加入到一个新的List集合中;
4. 将新生成的List集合添加到原始的List集合中;
5. 循环结束后,输出List集合的大小即为10年内生成的牛的数量。
阅读全文