基于java实现简单发红包功能
作者:阿贵努力挣钱买假发 发布时间:2023-08-09 17:06:40
标签:java,发红包
本文实例为大家分享了java实现简单发红包的具体代码,供大家参考,具体内容如下
这个案例是普通红包,均分的,不是拼手气红包。
package nuc.edu.day01.demo05;
/**
* @author Administrator
* 用户类
*/
public class User {
private String name;
private Double money;
public User() {
}
//显示当前余额
public void show(){
System.out.println(name + "当前的余额为:" + money);
}
public User(String name, Double money) {
this.name = name;
this.money = money;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getMoney() {
return money;
}
public void setMoney(Double money) {
this.money = money;
}
}
package nuc.edu.day01.demo05;
import java.util.ArrayList;
/**
* @author Administrator
* 群主发红包的操作
*/
public class Manager extends User {
public Manager() {
}
public Manager(String name, Double money) {
super(name, money);
}
/**定义发红包的方法
* totalMoney:发红包的总金额
* num:发红包的个数*/
public ArrayList<Double> send(double totalMoney,int num){
/**存放红包的集合*/
ArrayList<Double> redList = new ArrayList<>();
/**当前余额*/
double leftMoney = super.getMoney();
if (leftMoney < totalMoney){
System.out.println("抱歉,您的余额不足");
return redList;
}
/**发完红包的余额*/
super.setMoney(leftMoney-totalMoney);
/**将钱平均存入每个红包中*/
double avg = totalMoney / num;
for (int i = 0; i < num; i++) {
redList.add(avg);
}
return redList;
}
}
package nuc.edu.day01.demo05;
import java.util.ArrayList;
import java.util.Random;
/**
* @author Administrator
* 群内成员抢红包的操作
*/
public class Member extends User {
public Member() {
}
public Member(String name, Double money) {
super(name, money);
}
/**定义收红包的方法*/
public void receive(ArrayList<Double> list){
/**创建随机红包对应的索引*/
int index = new Random().nextInt(list.size());
/**当前余额*/
double money = super.getMoney();
/**根据索引将自己抢到的红包删掉*/
double delta = list.remove(index);
/**领完红包后的余额*/
super.setMoney(money+delta);
}
}
package nuc.edu.day01.demo05;
import java.util.ArrayList;
/**
* @author Administrator
*/
public class Main {
public static void main(String[] args) {
Manager manager = new Manager("群主",300.00);
Member a = new Member("A",0.00);
Member b = new Member("B",10.00);
/**显示当前余额*/
manager.show();
a.show();
b.show();
System.out.println("============");
ArrayList<Double> redList = manager.send(52.00,2);
a.receive(redList);
b.receive(redList);
/**显示抢完红包后的余额*/
manager.show();
a.show();
b.show();
}
}
来源:https://blog.csdn.net/yxt_zts129418/article/details/109104307
0
投稿
猜你喜欢
- 动态内存管理为什么存在动态内存分配我们到现在为止掌握的是什么样的内存开辟方式呢//创建一个变量int val = 20; &n
- java 网络编程java.net 类 InetAddress 此类表示互联网协议 (IP) 地址。 会抛出异常 UnknownHostEx
- 员工管理系统1、准备工作资料下载内含源码 + 笔记 + web素材源码下载地址:http://xiazai.jb51.net/202105/
- 在IDEA中配置log4j,步骤很简单1.在Maven中加入以下配置<dependency> <groupI
- JAVA 中Spring的@Async用法总结引言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方
- 工作需要,要在一个Form里面实现一个实时预览的picturebox图像,由于picturebox可能会遮挡到其后面的画面,所以要求pict
- 这篇文章主要介绍了Spring-boot的debug调试代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- foreach嵌套使用if标签对象取值问题最近做项目过程中,涉及到需要在 Mybatis 中 使用 foreach 进行循环读取传入的查询条
- 命令模式定义:将请求封装成对象,这可以让你使用不同的请求、队列、或者日志来参数化其他对象。何时使用命令模式?当需要将发出请求的对象和执行请求
- Java try和catch的使用尽管由Java运行时系统提供的默认异常处理程序对于调试是很有用的,但通常你希望自己处理异常。这样做有两个好
- 序言:使用MyBatis3提供的注解可以逐步取代XML,例如使用@Select注解直接编写SQL完成数据查询,使用@SelectProvid
- MyBatis 获取子类的属性这里有个model类:基类public class user { pu
- 1. 前言在Java开发中接触的开发者大多数不太注重对接口的测试,结果在联调对接中出现各种问题。也有的使用Postman等工具进行测试,虽然
- eclipse导入Spring配置文件约束 Windows-Preference-XML-XMLCatalog点 Add 选Fil
- 前言定时器线程池提供了定时执行任务的能力,即可以延迟执行,可以周期性执行。但定时器线程池也还是线程池,最底层实现还是ThreadPoolEx
- 一、封装封装:是面向对象方法的重要原则,就是把对象的属性和行为(数据)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,就是把不想告诉或
- Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。本篇不涉及其原理,只用代码构建项目简单试用一下其回滚
- Java序列化JSON时long型数值,会出现精度丢失的问题。原因:java中得long能表示的范围比js中number大,也就意味着部分数
- 为什么要限流在保证可用的情况下尽可能多增加进入的人数,其余的人在排队等待,或者返回友好提示,保证里面的进行系统的用户可以正常使用,防止系统雪
- 去公司面试,对方一口一个controller,一口一个service,dao,搞得我很紧张。其实都是很简单的东西,只是自己当时不知道罢了,接