首先我們從一道經典的面向對象題目理解:一頭母牛一年生一頭小牛,一頭小牛過四年也每年生一頭小牛,照此推算,20年後一共有多少頭牛?
牛:爲一個具體對象。
牛:屬性:年齡
按照題意可知:這頭牛的年齡只要達到4歲就能開始生小牛
那首先我們先寫一個小牛類:沒過一年生一頭小牛,這裏面應該有個方法記錄小牛的年齡,和新增的小牛
public void cow(){
private int age;
public cow(int age){
this.age=age;
}
public void birthday(ArrayList<cow> cows){
age++;
if(age>=4){//如果牛齡達到4歲,new一個新的小牛
cows.add(new cow(0));
}
}
}
然後是主程序:先對母年進行實例化
public class beef(){
ArrayList<cow> cows=new ArrayList<cow>();
cows.add(new cow(4));
for(int i=0;i<20;i++){
//每次都要重新new一個list用來記錄新增的小牛,相當於一個容器存儲
ArrayList<cow> newcows=new ArrayList<cow>();
for(Cow cow:cows){
cow.birthday(newcows);
}
//將所有的牛都加到這個cows中
cows.addAll(newcows);
}
System.out.println("二十年共有牛 " + cows.size() + " 頭。");
}