【Java】综合案例——发红包【界面版】

🔎这里是【Java】,关注我学习Java不迷路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️
👀专栏介绍
【Java】 目前主要更新Java,一起学习一起进步。
👀本期介绍
本期主要介绍综合案例——发红包【界面版】
文章目录
红包文化源远流长。从古时的红色纸包,到手机
App
中的手气红包,红包作为一种独特的中华文化
传承至今。之前
的课程中,我们也编写过程序,模拟发普通红包。那么今天,我们将整合基础班课程中所有的技术
和知识,编写一
个带界面版的
发红包
案例。
目前,我们尚未学习过任何与界面相关的类。所以,界面相关代码,已经给出。请运用所学技术分
析并使
用。
案例需求
分析并使用已给出的类,编写程序,设置红包类型。
小贴士
红包类型:
1.
普通红包:金额均分。不能整除的,余额添加到最后一份红包中。
2.
手气红包:金额随机。各个红包金额累和与总金额相等。
红包场景:
此案例是模拟群主给群成员发红包,群主自己打开最后一个红包的场景。
案例分析
已知的类:
1.
RedPacketFrame
:一个抽象类,包含了一些属性,是红包案例的页面。
2. OpenMode :一个接口,包含一个分配方法,用来指定红包类型。

案例实现
环境搭建:
1.
创建项目:名称自定义,建议为
RedPacketDemo
。
2.
导入图片:将
pic
目录,导入项目中,与
src
目录平级。
3.
导入已知类:在
src
下创建一个包,名字自定义,建议为
known
,将类
RedPacketFrame
、接
口
OpenMode
拷入。
代码实现:
1.
定义
RedPacket
类,继承
RedPacketFrame
,代码如下:
2. 定义测试类,创建 RedPacket 对象,代码如下:

运行代码,打开一个发红包的页面。可以输入总金额,红包个数,留言信息。

点击 塞钱进红包 按钮,跳转到下一页面。

点击
谁谁谁谁
和
開
,两个区域,发现可以设置两项内容:
谁谁谁谁
:表示群主在发红包,可设置群主名称。通过此方法,熟悉类结构,直接调用父类的方
法。

開 :表示打开红包,跳转到下一页面。但是开启之前,必须先设置红包的类型,否则无法开启。

3.
RedPacket
对象,设置群主名称。
setOwnerName
(
String ownerName
)
,是字符串作为参数。我们只需要传递一个字符串即可。
4.
RedPacket
对象,设置红包类型。
setOpenMode(OpenMode openMode)
,是接口作为参数。我们必须定义接口的实现类,重写接
口中方法,并传
递实现类对象到
setOpenMode
方法中,方可设置完成。再观察接口:

5. 普通红包,打开方式 Common ,代码如下:


6. 发普通红包,代码如下:

7.
手气红包【重点】
本质上,手气红包就是把总金额
totalMoney
随机分成指定的
count
份,所以必须规定每一份金额
的取值范围。如
果范围太小,可能导致后分配红包金额特别大。反之范围太大,可能导致后分配红包金额为
0
,不
够分。可见,取
值范围的定义规则,是手气红包的关键所在。
我们规定:每一份随机金额范围(除最后一份),最小值为
1
,最大值为
当前剩余平均金额的
2
倍
,单位为
"
分
"
。
计算公式:
![]()
举例:总额为50元,发5个红包。

小贴士:为方便表格中进行运算,此处,单位为
"
元
"
。程序中,建议换算为
"
分
"
进行运算。
手气红包,打开方式
Lucky
,代码如下:

8. 发手气红包,代码如下:

案例总结
通过
发红包
案例,你都学到了什么呢?请你思考如下问题:
1.
基础语法,你是否清晰?
2.
一些基本的类的方法,你是否能够调用?
3.
案例中哪里体现了继承,继承的作用是什么?
4.
接口作为参数,如何使用?
5.
接口作为成员变量,如何使用?
6.
如何简化接口的使用方式?
相信每位学员,都会有自己的思考和答案。也相信大家,随着开发经验的丰富,对于技术的理解会
更加深入,对技
术的运用会更加纯熟。通过对大量案例的不断积累,最终写出属于你自己的程序,成为一名真正的
coder
。感谢大
家参与学习
JavaSE
基础班课程,技术的道路上,这只是一个开始!谢谢大家!
浙公网安备 33010602011771号