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

简介: 本期主要介绍综合案例——发红包【界面版】

案例需求


分析并使用已给出的类,编写程序,设置红包类型。

小贴士

红包类型:

1. 普通红包:金额均分。不能整除的,余额添加到最后一份红包中。

2. 手气红包:金额随机。各个红包金额累和与总金额相等。

红包场景:

此案例是模拟群主给群成员发红包,群主自己打开最后一个红包的场景。

案例分析


已知的类:

1. RedPacketFrame :一个抽象类,包含了一些属性,是红包案例的页面。

image.png

2. OpenMode :一个接口,包含一个分配方法,用来指定红包类型。

image.png

案例实现


环境搭建:

1. 创建项目:名称自定义,建议为 RedPacketDemo 。

2. 导入图片:将 pic 目录,导入项目中,与 src 目录平级。

3. 导入已知类:在 src 下创建一个包,名字自定义,建议为 known ,将类 RedPacketFrame 、接

口 OpenMode

拷入。

代码实现:

1. 定义 RedPacket 类,继承 RedPacketFrame ,代码如下:

image.png

2. 定义测试类,创建 RedPacket 对象,代码如下:

image.png

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

image.png

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

image.png

点击 谁谁谁谁 ,两个区域,发现可以设置两项内容:

谁谁谁谁 :表示群主在发红包,可设置群主名称。通过此方法,熟悉类结构,直接调用父类的方法。

image.png

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

image.png

3. RedPacket 对象,设置群主名称。

setOwnerName(String ownerName,是字符串作为参数。我们只需要传递一个字符串即可。

image.png

4. RedPacket 对象,设置红包类型。

setOpenMode(OpenMode openMode) ,是接口作为参数。我们必须定义接口的实现类,重写接口中方法,并传递实现类对象到 setOpenMode 方法中,方可设置完成。再观察接口:

image.png

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

image.png

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

image.png

7. 手气红包【重点】

本质上,手气红包就是把总金额 totalMoney 随机分成指定的 count 份,所以必须规定每一份金额的取值范围。如果范围太小,可能导致后分配红包金额特别大。反之范围太大,可能导致后分配红包金额为 0 ,不够分。可见,取值范围的定义规则,是手气红包的关键所在。

我们规定:每一份随机金额范围(除最后一份),最小值为 1 ,最大值为 当前剩余平均金额的 2 倍,单位为 " 分 " 。

计算公式:

image.png

image.png

小贴士:为方便表格中进行运算,此处,单位为""。程序中,建议换算为""进行运算。

手气红包,打开方式 Lucky ,代码如下:

image.png

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

image.png

案例总结


通过 发红包 案例,你都学到了什么呢?请你思考如下问题:

1. 基础语法,你是否清晰?

2. 一些基本的类的方法,你是否能够调用?

3. 案例中哪里体现了继承,继承的作用是什么?

4. 接口作为参数,如何使用?

5. 接口作为成员变量,如何使用?

6. 如何简化接口的使用方式?

相信每位学员,都会有自己的思考和答案。也相信大家,随着开发经验的丰富,对于技术的理解会更加深入,对技术的运用会更加纯熟。通过对大量案例的不断积累,最终写出属于你自己的程序,成为一名真正的coder 。感谢大家参与学习 JavaSE 基础班课程,技术的道路上,这只是一个开始!谢谢大家!

相关文章
|
13天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
2月前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
84 3
|
2月前
|
开发框架 JavaScript 前端开发
HarmonyOS UI开发:掌握ArkUI(包括Java UI和JS UI)进行界面开发
【10月更文挑战第22天】随着科技发展,操作系统呈现多元化趋势。华为推出的HarmonyOS以其全场景、多设备特性备受关注。本文介绍HarmonyOS的UI开发框架ArkUI,探讨Java UI和JS UI两种开发方式。Java UI适合复杂界面开发,性能较高;JS UI适合快速开发简单界面,跨平台性好。掌握ArkUI可高效打造符合用户需求的界面。
137 8
|
2月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
72 2
|
2月前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
46 2
|
3月前
|
Java 数据库
案例一:去掉数据库某列中的所有英文,利用java正则表达式去做,核心:去掉字符串中的英文
这篇文章介绍了如何使用Java正则表达式从数据库某列中去除所有英文字符。
76 15
|
3月前
|
安全 Java
Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧
【10月更文挑战第20天】Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧,包括避免在循环外调用wait()、优先使用notifyAll()、确保线程安全及处理InterruptedException等,帮助读者更好地掌握这些方法的应用。
27 1
|
3月前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
【10月更文挑战第8天】本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
47 5
|
3月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
63 2
|
3月前
|
Java C#
Java的监听处理事件--小球移动案例
Java的监听处理事件--小球移动案例
24 0