基于java实现简单发红包功能

 更新时间:2020年11月27日 09:07:39   作者:阿贵努力挣钱买假发  
这篇文章主要为大家详细介绍了基于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();
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • maven为MANIFEST.MF文件添加内容的方法

    maven为MANIFEST.MF文件添加内容的方法

    这篇文章主要介绍了maven为MANIFEST.MF文件添加内容的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Java中利用Alibaba开源技术EasyExcel来操作Excel表的示例代码

    Java中利用Alibaba开源技术EasyExcel来操作Excel表的示例代码

    这篇文章主要介绍了Java中利用Alibaba开源技术EasyExcel来操作Excel表的示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 任何Bean通过实现ProxyableBeanAccessor接口即可获得动态灵活的获取代理对象或原生对象的能力(最新推荐)

    任何Bean通过实现ProxyableBeanAccessor接口即可获得动态灵活的获取代理对象或原生对象的能力(最新推

    这篇文章主要介绍了任何Bean通过实现ProxyableBeanAccessor接口即可获得动态灵活的获取代理对象或原生对象的能力,通过示例代码看到,借助ProxyableBeanAccessor接口默认实现的getReal、getProxy、selfAs方法,很灵活的按需获取代理或非代理对象,需要的朋友可以参考下
    2024-02-02
  • eclipse 联想功能设置技巧

    eclipse 联想功能设置技巧

    本文主要介绍了eclipse 联想功能设置技巧的相关内容,还是比较不错的,需要的朋友可以参考。
    2017-10-10
  • Ibatis配置xml文件CDATA使用方法详解

    Ibatis配置xml文件CDATA使用方法详解

    这篇文章主要介绍了Ibatis配置xml文件CDATA使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • jmap执行失败如何获取heapdump详解

    jmap执行失败如何获取heapdump详解

    这篇文章主要为大家介绍了jmap执行失败如何获取heapdump详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • spring boot 集成dubbo的示例演示

    spring boot 集成dubbo的示例演示

    这篇文章主要介绍了spring boot 集成dubbo的示例演示,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • 浅谈Java堆外内存之突破JVM枷锁

    浅谈Java堆外内存之突破JVM枷锁

    这篇文章主要介绍了浅谈Java堆外内存之突破JVM枷锁,涉及jvm内存分配,jvm垃圾回收,堆外内存的垃圾回收等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Java+opencv3.2.0实现hough圆检测功能

    Java+opencv3.2.0实现hough圆检测功能

    这篇文章主要为大家详细介绍了Java+opencv3.2.0实现hough圆检测,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • MyBatisPlus中使用or()和and()遇到的问题及细节处理

    MyBatisPlus中使用or()和and()遇到的问题及细节处理

    这篇文章主要介绍了MyBatisPlus中使用or()和and()遇到的问题,本文通过多种写法实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08

最新评论