通过纸牌程序建立面向对象的编程思维

语言:Java     使用软件:Android Studio程序:纸牌比较大小     预计阅读时长:3min


问题发现:

 在Java学习的过程中,常常根据要求直接打出一串长长的代码,虽然达到了目的,但是老师看了后,一句轻飘飘的“这是在面向过程。”给我当头一棒,很纳闷“我写了类和对象啊!”“不是写了类和对象就是面向过程。”好吧,又是当头一棒。。。

在Java学习过程中你是否也面临这样的问题,如果是的话,请继续往下读吧~说不定能帮助你解决哦~如果你有更好的方法,欢迎来和我讨论~


所以,到底什么是面向对象,又怎样才能在编程时做到面向对象?

以【构建一副扑克牌,在一副牌中抽出俩张牌比大小,点数相同比花色】该程序为例

面向过程编程:

(本文暂不深入)通过将程序拆分成小的步骤,用方法(函数)一步一步完成程序功能

1-写一副牌的函数

2-抽俩张牌的函数

3-比较大小的函数:(1)比较点数--->点数相同--->(2)比较花色



面向对象编程:

一提到面向对象时,我们往往只注意到面向对象的三个特性:封装,多态,继承。却忽略面向对象编程的开发思维。对此,我总结出在编程中构建面向对象的步骤:

1.找到程序中需要设计的对象(该纸牌程序中即为纸牌)并进行细化(纸牌--点数+花色),

和拓展(管理纸牌的工具:用来随机抽出俩张牌)

2.用UML图将步骤1中涉及到的对象写出来

如图:


*这一步是关键

可以使用Processon辅助完成。

Tips:Java的类中应包含属性和方法,因此每一个类对应的每一个框中也应包含这俩项。

3.根据架构写程序

*顺序为从小到大写

接下来我们一起一步一步完成该程序。

纸牌点数:

【思路:纸牌点数为"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A",无法直接比较大小,故利用一个标签(tag)辅助完成大小的比较】

对应程序:

【分析:构造函数初始化对象】

纸牌花色:

【思路同上】

对应程序:

纸牌管理器:

【思路:这一步完成纸牌的构建和洗牌】


【分析:在这一步我们要把花色(包含我们刚刚写的PokerSuit,并使用数组)和点数(包含我们刚刚写的PokerNumber,并使用数组)拼在一起(俩个循环嵌套遍历数组)并把它装进一副完整的牌中(集合),并完成洗牌(集合的方法)和抽牌(自定义函数,通过索引值随机抽取,并移除该纸牌,保证是俩张不相同的牌)】

对应程序:

纸牌:

【思路:将抽取的纸牌比大小】

对应程序:

OK,现在我们已经完成所有对象的创建了

现在来编写测试类主函数运行该程序吧!

运行结果如图:

点数不同时:

点数相同时:

快一起动手写吧~

希望对你的Java学习有帮助,我是立志进入大厂的编程小白菜菜蔡文姬,期待下次遇见~感谢阅读!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容