`
lisa.zhou
  • 浏览: 3741 次
  • 性别: Icon_minigender_2
最近访客 更多访客>>
社区版块
存档分类
最新评论

小例子-面向对象

 
阅读更多

 

 原题:

农场一头小母牛
每年生头小母牛
母牛四岁产母牛
二十年上多少牛

 

首先定义两个对象,母牛和农场

public class Cow {
	public static final int new_age = 4;//Till this age,the cow can birth new cow
	private int age;

	public Cow(int age){
		this.age = age;
	}
	
	/*
	 * birth the new cow
	 */
	public Cow birth(){
		if(age >= new_age ){
			return new Cow(0);
		}else{
			return null;
		}
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
}

 

import java.util.ArrayList;
import java.util.List;

public class Farm {
	public static List<Cow> cowList = new ArrayList<Cow>();
	
	/*
	 * init the farm,had one cow
	 */
	public Farm(){
		cowList.add(new Cow(0));
	}
	
	/*
	 * add cow to cowList
	 */
	public void addCow(Cow c){
		if(c != null){
			cowList.add(c);			
		}		
	}
	
	/*
	 * get total cow numbers till the year
	 */
	public int productionTillYear(int year){
		for(int i =1; i<=year; i++){
			System.out.println("第"+ i+"年:");
			for(int j=0;j<cowList.size();j++){
					Cow existCow = cowList.get(j);
					cowList.get(j).setAge(existCow.getAge()+1);
					Cow newCow = existCow.birth();
					addCow(newCow);					
				}
			System.out.println("所有的牛有"+ cowList.size()+"只。");
			}
		return  cowList.size();
	}
}
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Farm farm = new Farm();
		int totalNum = farm.productionTillYear(20);
		System.out.println("一共有"+totalNum+"头");
	}

}

  

运行结果:

写道
第1年:
所有的牛有1只。
第2年:
所有的牛有1只。
第3年:
所有的牛有1只。
第4年:
所有的牛有2只。
第5年:
所有的牛有3只。
第6年:
所有的牛有4只。
第7年:
所有的牛有6只。
第8年:
所有的牛有9只。
第9年:
所有的牛有13只。
第10年:
所有的牛有19只。
第11年:
所有的牛有28只。
第12年:
所有的牛有41只。
第13年:
所有的牛有60只。
第14年:
所有的牛有88只。
第15年:
所有的牛有129只。
第16年:
所有的牛有189只。
第17年:
所有的牛有277只。
第18年:
所有的牛有406只。
第19年:
所有的牛有595只。
第20年:
所有的牛有872只。
一共有872头

 

 

 

 

分享到:
评论

相关推荐

    matlab开发-面向对象的程序示例

    matlab开发-面向对象的程序示例。书中的例子:Matlab和Simulink,3e:用户指南),作者:Bogumila和Zbigniew Mrozek

    Java面向对象程序设计 例子源代码

    Java面向对象程序设计 例子源代码 耿祥义 张跃平 清华大学出版社

    C++面向对象编程小例子

    2. 设计一个含有多个菜单项的菜单演示程序,然后再为这些菜单项设计相应的功能。 要求: (1)程序显示下列菜单选项: 1. 解一元二次方程 2. 石头、剪子、布游戏 3. 退出程序 选择1-3: (2)用户选择1,则求解一元...

    软件开发文档-面向对象

    (大学)软件工程uml的开发文档-图书管理系统举例,其中包括分析与设计案例ppt、测试分析报告、测试计划、个人总结报告、...我没有积分下csdn里的文档,所以只能把学校里的例子文档发出来,给大家参考顺便赚2个积分。

    刘振安-面向对象程序设计 C++

    本章将通过一个实际的例子,介绍C++如何兼容面向过程设计、它的基本程序结构及其在函数设计上与C语言的异同。然后给出使用函数重载的实例,以便为从结构引入类的知识打下基础。最后介绍C++语言的动态内存分配、引用...

    php初级编程的例子,面向对象的封装很适合

    php初级编程的例子,面向对象的封装很适合初学者的,希望对大家有所帮助

    面向对象代码例子

    主要运用了objectC语言来写了一个面向对象编程的简单例子,可以下载来研究下,精益IOS就是这样练成的

    Python基础教程详解(第四十九课)-面向对象(3).doc

    Python基础教程详解 【第49课】 面向对象(3) 面向对象是比较复杂的概念,初学很难理解。我曾经对人夸张地说,面向对象是颠覆你 编程三观的东西,得花上不少时间才能搞清楚。我自己当年初学Java的时候,也是折腾 了...

    php简单面向对象的网站例子

    php简单面向对象的网站例子,适合刚接触面向对象的童鞋

    Python面向对象编程速成(速记速学小例子和源码迅速学会Python面向对象编程)

    自己整理的Python面向对象编程速记速学小例子和源码,只有6页,可以迅速学会Python面向对象编程。原书已加入书签方便阅读。介绍了类的声明,实例化,绑定属性,构造函数,数据封装,继承,多态,实例属性和类属性。...

    Python 3面向对象编程

    《Python 3面向对象编程》通过Python 的数据结构、语法、设计模式,从简单到复杂,从初级到高级,一步步通过例子来展示了Python 中面向对象的概念和原则。, 《Python 3面向对象编程》不是Python 的入门书籍,适合...

    一个理解面向对象很好的例子

    一个理解面向对象很好的例子 在学校老师就是用这个例子进行讲解,我认为还可以就传上来了,大家看看吧 好东西要一起分享

    c# 例子~面向对象

    可以能够更好的学习C#。c# 例子~面向对象

    面向对象分析与设计

    《面向对象分析与设计(第3版)》通过大量例子说明了基本概念,解释了方法,并展示了在不同领域的成功应用。全书分为理论和应用两部分。理论部分深刻剖析了面向对象分析与设计(OOAD)的概念和方法。应用部分连续列出了5...

    面向对象软件工程

    《面向对象软件工程》 作者:Stephen.R.Schach 学校:(美)范德比尔特大学 书名原名:Objected-Oriented Software Engineering 目录: 第一部分 面向对象软件工程简介  第一章 面向对象软件工程的范畴  第二章 ...

    c++课后例子关于面向对象方面的

    自己做的c++的练习 为了方便大家 关于c++面向对象方面的

    C++ 面向对象示例

    【C++ 语言】面向对象 ( 类定义 | 限制头文件引用次数 | 构造方法 | 析构方法 ) : https://hanshuliang.blog.csdn.net/article/details/99609557 【C++ 语言】面向对象 ( 成员函数 | 常量函数 | 友元函数 | 友元类 ...

    s面向对象例子 勇者传说 zip

    s面向对象例子 勇者传说 zip

    软件工程课程设计-面向对象java-web

    大学城体育信息管理系统,有文档有源码,内有数据库文件和数据库备份还原方案

    delphi面向对象例程

    delphi面向对象的例子程序,内置源码

Global site tag (gtag.js) - Google Analytics