A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 午夜b'Boy 中级黑马   /  2014-2-25 23:54  /  1185 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 午夜b'Boy 于 2014-2-28 00:59 编辑

一颗种子,发芽,长成花苗,开花,结果。。用面向对象的思想如何体现?

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

7 个回复

倒序浏览
午夜b'Boy 来自手机 中级黑马 2014-2-26 00:02:49
沙发
个人觉得用枚举,像交通灯的设计,next()一次进入下一个阶段!但都是一个枚举类,具有不同枚举值!
回复 使用道具 举报
建立一个工厂,原料为种子,可以设置种子有出芽的方法,出来的是苗。   再一个工厂,原料为芽,出来的是苗。  苗有长大的方法,出来的是树。树有开花的方法,出来的是果。

所以可以定义对象有 种子   苗   树   花   果

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
我是这么想的,因为植物的生长过程基本上都是这样的,所以可以写一个植物类Plant,有一个生长的方法grow(),种子、发芽、花苗、开花、结果只是植物生长的不同阶段(状态),所以可以定义成常量,用于判断当前处于什么阶段什么的。
因为植物生长都需要阳光水分什么的,所以可以写一个接口,在其中定义一些接收阳光水分之类的方法,让植物类implements这个接口,通过不断接收养分成长到不同的阶段。
然后,因为可以人为的给植物施肥修剪枝叶什么的,所以可以写一个装饰类,在其中提供这些加强的功能。

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
午夜b'Boy 来自手机 中级黑马 2014-2-26 07:30:35
报纸
我要的幸福呢 发表于 2014-2-26 04:21
我是这么想的,因为植物的生长过程基本上都是这样的,所以可以写一个植物类Plant,有一个生长的方法grow() ...

嗯,感觉已经很接近了,在深入一点,设计一个摘果实的方法,我的想法是此方法接收(植物.class)返回一个果实类,果实内部通过反射得到对应的种子!

回复 使用道具 举报
本帖最后由 何苦似梦离 于 2014-2-26 08:00 编辑

一颗种子,发芽,长成花苗,开花,结果,我们用一个共同的状态指向它们,也就是植物,然后对象发芽的初始化需要通过,一个函数,这个函数必须获取种子,然后依次类推.

点评

当事物可以直接关联的是时候,没必要通过第三方链接它们的关系,他们自己本身就可以和下一个状态关联.  发表于 2014-2-26 07:57
回复 使用道具 举报
午夜b'Boy 来自手机 中级黑马 2014-2-26 15:25:30
7#
植物类设计好了之后,要开辟一个牧场,又要如何实现?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马