基于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


猜你喜欢
- 1.背景在项目中有些敏感信息不能直接展示,比如客户手机号、身份证、车牌号等信息,展示时均需要进行数据脱敏,防止泄露客户隐私。脱敏即是对数据的
- 这篇文章主要介绍了Java多线程的临界资源问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 在Monkeyrunner做自动化测试时,可以使用模拟器,当然也可以选择用真机。不过,要想通过电脑来安装软件,操作手机,则必须先安装手机驱动
- 前几天的一个晚上突然想到微信红包应该有一个随机算法,就自己试着写了下,也不知道对不对,看了看网上的说法,好像到现在为止官方也没有给出一个确切
- Java 8新增了LocalDate和LocalTime接口,为什么要搞一套全新的处理日期和时间的API?因为旧的java.util.Dat
- 通过下面代码在构造函数中调用方法 SetShadow();即可实现无边框窗体的阴影效果了需要添加命名空间 using System.Runt
- Remember me功能就是勾选"记住我"后,一次登录,后面在有效期内免登录。先看具体配置:pom文件:<dep
- 在之前讨论 ListView 滚动相关需求的文章中(UWP: ListView 中与滚动有关的两个需求的实现)曾经提到了获取元素相对位置的方
- AndroidStudio 的SVN 安装和使用方法与我以前用的其他IDE 都有很大差别,感觉特麻烦,网上相关资料很少,貌似现在 Git 比
- 前言在之前学习如何使用MediaPlayer后,了解到Android系统提供开发者播放多媒体全家桶能力,但对于开发者希望DIY自由度更高的播
- 懒加载 ,也称为嵌套查询 需要查询关联信息时,使用 Mybatis 懒加载特性可有效的减
- Fragment Android是在Android 3.0 (API level 11)开始引入Fragment的。 可以把Fragment
- 在最近的项目中因为要用Android作为一个服务器去做一个实时接收数据的功能,所以这个时候就要去做一个Android本地的微型服务器。那么此
- JAVA中实现pdf转图片可以通过第三方提供的架包,这里介绍几种常用的,可以根据自身需求选择使用。一、icepdf。有收费版和开源版,几种方
- 一、介绍Properties文件在Java中主要为配置文件,文件类型为:.properties,格式为文本文件,内容格式为"键=值
- 如今,企业级应用程序的常见场景是同时支持HTTP和HTTPS两种协议,这篇文章考虑如何让Spring Boot应用程序同时支持HTTP和HT
- 本文以实例形式讲述了C#命令模式的实现方法,分享给大家供大家参考。具体实现方法如下:现假设想让遥控器控制电灯的开关、电视机的开关和切换,该如
- 日常对于金额计算,应该都是用的BigDecimal,可是苦于没有好的工具类方法,现在贡献一个我正在用的对于数字计算的工具类,项目中就是用的这
- 一、JDBC概述1、数据的持久化持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用
- Spring BeanPostProcessor执行顺序首先 Spring 通过调用构造方法创建 User 对象;User 对象创建好之后,