软件构造类与对象相关复习--猴子摘香蕉

这篇博客通过一个猴子摘香蕉的问题,介绍了如何使用Java进行类和对象的基础操作。作者创建了猴子、香蕉和箱子三个类,并实现了猴子移动、推动箱子和摘取香蕉的方法。通过主程序,模拟不同状态下的猴子行动,最终判断猴子能否摘到香蕉。这个简单的项目适合Java初学者熟悉代码结构和类对象知识。
摘要由CSDN通过智能技术生成

软件构造临近末尾,开始准备复习。借助猴子摘香蕉,复习一下最基础的对象、类相关知识(规约、AF、RI等不包括)

猴子摘香蕉题目:一个房间里,天花板上挂有一串香蕉,有一只猴子可在房间里任意活动(到处走动,推移箱子,攀登箱子等)。设房间里还有一只可被猴子移动的箱子,且猴子登上箱子时才能摘到香蕉,问猴子在某一状态下(设猴子位置为A,香蕉位置在B,箱子位置为C),如何行动可摘取到香蕉。

主要思路:将房间抽象为一个无限大的二位空间。初始猴子、香蕉、箱子位置可以程序内默认,也可以手动输入(这里采用的是程序内默认,猴子在(0,0),香蕉在(10,10),箱子在(20,5))

代码编写:一个main函数,三个类(猴子类,香蕉类,箱子类)

香蕉类和箱子类较为简单,只有两个field,用来表示x和y,合起来即为其二维位置

猴子类除了x和y之外,还用到了四个方法:

monkeymove表示猴子移动到某个位置

movebox表示猴子推动箱子,要求猴子必须与箱子距离为1。满足条件后,优先推动直至箱子与香蕉x相同,再对y推动

monkeyclimb表示猴子登上箱子,要求猴子和箱子距离为1

getbanana返回一个布尔值,当猴子,箱子,香蕉位置相同时,说明猴子取得香蕉

主程序分别讨论猴子,箱子,香蕉相对位置指定相应步骤,最终通过getbanana函数判断这些步骤是否能让猴子取得香蕉。

 

 最后main函数通过if嵌套判断猴子箱子香蕉相对位置即可。

总结:

对于java初学者而言,做做这种简单的项目还是很好的。不用要求写的代码很规范,规约等等全部写进去,只要能实现主要功能即可。对于熟悉代码结构,复习类与对象相关知识有着很大好处

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值