博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用面向对象的思想设计问题
阅读量:5139 次
发布时间:2019-06-13

本文共 1942 字,大约阅读时间需要 6 分钟。

本例子以一道面试题为例

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

 

在设计类以及设计对象的问题上、我们可能会以农场、母牛分别添加一个类,在分析类之后,对于该类的属性以及类的方法,又怎么分的呢?

由题目上所看出的,农场有牛,牛有岁数,岁数一到就又可以new 一头小牛.

然后以此类推,不妨我们可以用递归的方式来进行对牛进行判断循环并添加,题中求返回20年内农场里有多少头牛

因此我们可以对农场Farm的属性Cow以集合的方式定义,并且,农场必须还有添加小牛的方法,每年农场增加的小牛的方法#### 

那么,是如何想到这些个方法呢?

  认真读题! 从题中提取关键字,关键名词,(比如 农场【有很多牛,每年农场都有牛】,母牛【可以生产小牛,五岁以下不可以生产#因此可以年龄是必须定义的】)

相信读到这里应该已经恍然大悟了吧!!!

先贴上我的代码

package com.choviwu.java;import java.util.ArrayList;import java.util.List;/** * 农场一头小母牛,  * 每年生头小母牛,  * 母牛五岁产母牛,  * 二十年上多少牛? * @author ThinkWu * @date 2017年8月7日 */public class Farm {    private List
cows = new ArrayList
(); //add public void addCows(Cow cow){ cows.add(cow); } public void everyYear(){ for (int i = 0; i < 20; i++) { //every cow 's index for(int j = 0;j
=5) this.addCows(cow.getCow()); } System.out.println((i+1)+" "+this.cows.size()); } } }

 

package com.choviwu.java;import java.util.ArrayList;import java.util.List;/** * 农场一头小母牛,  * 每年生头小母牛,  * 母牛五岁产母牛,  * 二十年上多少牛? * @author ThinkWu * @date 2017年8月7日 */public class Farm {    private List
cows = new ArrayList
(); //add public void addCows(Cow cow){ cows.add(cow); } public void everyYear(){ for (int i = 0; i < 20; i++) { //every cow 's index for(int j = 0;j
=5) this.addCows(cow.getCow()); } System.out.println((i+1)+" "+this.cows.size()); } } }

 

package com.choviwu.java;/** *  * @author ThinkWu * @date 2017年8月7日 */public class TestFarm {    public static void main(String[] args) {        Farm f = new Farm();        f.addCows(new Cow(5));        f.everyYear();    }}

 

转载于:https://www.cnblogs.com/ChoviWu/p/7300048.html

你可能感兴趣的文章
web开发的三层架构
查看>>
Linux 下安装 jdk-7u79-linux-x64.gz,jdk1.7.0_79,jdk1.7步骤:
查看>>
s5_day4作业
查看>>
【转载】维度表和事实表的区别
查看>>
maven工程的如何进行代码调试
查看>>
正则表达式
查看>>
项目管理
查看>>
linux命令详解——sort
查看>>
关于python 的hmac加密
查看>>
Python MQTT 实验
查看>>
buerdepepeqi 的模版
查看>>
归并排序-分治法
查看>>
Go语言基础知识
查看>>
SharePoint2013 此产品的试用期已结束
查看>>
关于正则表达式的方法及其他
查看>>
WinCE应用程序开发---进程间通信
查看>>
自动化测试开发环境搭建
查看>>
CrashHandler实例
查看>>
XMPP框架的分析、导入及问题解决
查看>>
bootstrap用法小计
查看>>