200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 农场有头大母牛 每年生头小母牛 小母牛五年后生小母牛 问后农场一共有多少头牛

农场有头大母牛 每年生头小母牛 小母牛五年后生小母牛 问后农场一共有多少头牛

时间:2022-05-05 19:45:21

相关推荐

农场有头大母牛 每年生头小母牛 小母牛五年后生小母牛 问后农场一共有多少头牛

笔试题

代码如下:

package cn.edu.test;import java.util.ArrayList;import java.util.List;/*** 农场有头大母牛,每年生头小母牛,小母牛五年后生小母牛,问后农场一共有多少头牛?(用面向对象的思想)* 采用面向对象的思想:农场是一个对象,农场这个对象里存放着母牛,该对象应该提供一个方法用于统计N年后农场的母牛的总数。* 母牛也是一个对象,母牛这个对象里有一个年龄属性,该对象有生长的方法以及生育的方法。* * @author YCY* */class Cow {private int age;public Cow(int age) {this.age = age;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}/** 每年长大一岁*/public void grow() {this.age++;}/** 母牛生小牛,如果年龄达到5岁,则可以每年都生一头小母牛,反之,则不能生育,返回null*/public Cow generation() {if (this.age >= 5)return new Cow(0);return null;}}class Farm {// cows集合存放所有母牛对象private List<Cow> cows = new ArrayList<Cow>();public List<Cow> getCows() {return cows;}public void setCows(List<Cow> cows) {this.cows = cows;}/** 第N年后农场的牛的数量*/public int getCowNum(int year) {// children集合存放每年所有母牛生的小母牛对象List<Cow> children = new ArrayList<Cow>();for (int i = 0; i < year; i++) {for (Cow c : cows) {c.grow();Cow cc = c.generation();if (cc != null) {// 如果该母牛可以产仔了,则将其产的小母牛加入children集合中children.add(cc);}}cows.addAll(children);// 将整个小母牛集合加入所有母牛的集合中children.clear();// 每年过后将children集合清空}return cows.size();}}public class MyTest {public static void main(String[] args) {Farm farm = new Farm();// 首先创建一个已经可以产仔的母牛对象Cow c = new Cow(5);// 将这个母牛添加到农场中farm.getCows().add(c);int num = farm.getCowNum(20);// 后农场的牛的总数System.out.println(num);// 结果:431}}

农场有头大母牛 每年生头小母牛 小母牛五年后生小母牛 问后农场一共有多少头牛?(用面向对象的思想)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。