Java实现发红包功能

Java发红包案例,供大家参考,具体内容如下

首先我们需要分析这个代码的架构是什么,需要什么类组成等。
我们需要建立4个类,这4个类分别是用户类、群主类、成员类,运行类;
因为群主类和成员类都有共同的特点--------拥有名字和余额,所以需要用户类去存储名字与余额

第一步:我们需要建立一个用户类,里面存储的是名字和余额

package Java.RedPacketCode;

public class UserClass {
  private String name;
  private int balance;

  public UserClass(String name, int balance) {
    this.name = name;
    this.balance = balance;
  }

  public void setName(String name) {
    this.name = name;
  }

  public String getName() {
    return name;
  }

  public void setBalance(int balance) {
    this.balance = balance;
  }

  public int getBalance() {
    return balance;
  }

  public void show() {
    System.out.println("Name:" + name + "****" + "RMB:" + balance);
  }
}

第二步:我们需要一个群主类去继承用户类

package Java.RedPacketCode;

import java.util.ArrayList;

public class GroupMainClass extends UserClass {

  public GroupMainClass(String name, int balance) {
    super(name, balance);
  }

  public ArrayList<Integer> handOutRedEnvelopes(int amountRequired, int count) {
    int existingAmount = super.getBalance();
    if (existingAmount < amountRequired) {
      System.out.println("Your balance is insufficient!");
    }
    int money=existingAmount-amountRequired;
    super.setBalance(money);

    System.out.println(super.getName()+" has"+money+" yuan left");

    int avg = amountRequired / count;
    int remainder = amountRequired % count;
    int decimal = avg + remainder;

    ArrayList<Integer> list = new ArrayList<>();
    for (int i = 0; i < count - 1; i++) {
      list.add(avg);
    }
    list.add(decimal);
    return list;
  }
}

第三步:我们需要建立一个成员类去继承用户类

package Java.RedPacketCode;

import java.util.ArrayList;
import java.util.Random;

public class MemberClass extends UserClass {

  public MemberClass(String name, int balance) {
    super(name, balance);
  }

  public void redEnvelopes(ArrayList<Integer> list) {
    Random r = new Random();
    int index = r.nextInt(list.size());
    int money = list.remove(index);
    int existingAmount = super.getBalance();
    int totalAmount = money + existingAmount;
    super.setBalance(totalAmount);
  }
}

第四步:我们需要建立一个运行类,用来运行代码

package Java.RedPacketCode;

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

  public static void main(String[] args) {
    GroupMainClass gmc = new GroupMainClass("Groupleader", 200);
    gmc.show();
    MemberClass mc1 = new MemberClass("Tom", 0);
    MemberClass mc2 = new MemberClass("Jack", 0);
    MemberClass mc3 = new MemberClass("Jenny", 0);

    UserClass arrays[] = {mc1, mc2, mc3};
    for (int i = 0; i < arrays.length; i++) {
      arrays[i].show();
    }

    System.out.println("==================");
    Scanner scanner = new Scanner(System.in);
    System.out.println("How much would you like to send");
    int money = scanner.nextInt();
    System.out.println("How many red packets would you like to send");
    int count = scanner.nextInt();
    ArrayList<Integer> list = gmc.handOutRedEnvelopes(money, count);
    mc1.redEnvelopes(list);
    mc2.redEnvelopes(list);
    mc3.redEnvelopes(list);
    for (int i = 0; i < arrays.length; i++) {
      arrays[i].show();
    }

  }
}

希望大佬们多多指教。

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

(0)

相关推荐

  • Java基于ArrayList实现群主发红包功能

    群主发普通红包,某群有多名成员,群主给成员发普通红包,普通红包的规则: 群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取: 成员领取红包后,保存到成员余额中. 请根据描述,完成案例中所有类的定义以及指定类之间的继承关系,并完成发红包的操作. 根据题目可以稍作分析,群主和普通群成员都隶属于用户类,那么久可以建立一个用户类,用户类的属性可以有用户名,金额或者钱包,如下: package day05_after03; /** * 定义成员类 * * @author liuwenlong *

  • Java实现微信发红包

    前言 红包文化源远流长.从古时的红色纸包,到手机App中的手气红包,红包作为一种独特的中华文化传承至今.之前的所有内容中,综合Java这方面的知识,可以模拟发普通红包.那么这篇博客,我将整合之前介绍的所有的技术和知识,编写一个带界面版的 发红包 案例. 需求分析 分析并使用已给出的类,编写程序,设置红包类型. 小贴士 红包类型: 1.普通红包:金额均分.不能整除的,余额添加到最后一份红包中. 2.手气红包:金额随机.各个红包金额累和与总金额相等. 红包场景: 此案例是模拟群主给群成员发红包,群主

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

  • Java实现发红包功能

    Java发红包案例,供大家参考,具体内容如下 首先我们需要分析这个代码的架构是什么,需要什么类组成等. 我们需要建立4个类,这4个类分别是用户类.群主类.成员类,运行类: 因为群主类和成员类都有共同的特点--------拥有名字和余额,所以需要用户类去存储名字与余额 第一步:我们需要建立一个用户类,里面存储的是名字和余额 package Java.RedPacketCode; public class UserClass { private String name; private int ba

  • php实现微信发红包功能

    本文实例为大家分享了php实现微信发红包功能的具体代码,供大家参考,具体内容如下 微信商家后台-现金红包开发: <?php class wxPay { //配置参数信息 const SHANGHUHAO = "1430998xxx";//商户号 const PARTNERKEY = "leFyTOXWzUEXxfp47WOu5d9xxxxxx"; //api,商户后台 //核心支付函数,参数:请求地址和参数 function pay($url,$obj) {

  • 微信小程序实现发红包功能

    本文实例为大家分享了微信小程序实现发红包的具体代码,供大家参考,具体内容如下 目前此功能尚在内测,无法申请.此博文仅示例. 流程效果图: 图片1触发wx.sendBizRedPacket({})吊起图片2,点击开,出现图片3,关闭以后出现图片4. wx.sendBizRedPacket({})说明及示例: wx.sendBizRedPacket({ timeStamp: e.timeStamp, nonceStr: e.nonceStr, package: e.package, signType

  • php实现微信公众平台发红包功能

    本文实例为大家分享了php微信公众平台给用户发红包的具体代码,供大家参考,具体内容如下 直接上代码: 代码 <?php /** * 微信红包的类 * @Author snmoney#gmail.com * @copyright 2015 * @version 2.0 * *微信红包还有部分可选的参数,如分享预设值等将在后续版本补充上相关功能. * 对应官方接口更新,追加了分裂红包的玩法,详情参考官方文档. */ CLASS WXHongBao { private $mch_id = "**

  • AccessibilityService实现微信发红包功能

    在AccessibilityService中我们可以做模拟操作,下面记述下通过AccessibilityService实现微信发红包的功能 1.配置AccessibilityService,需要通过集成AccessibilityService来执行操作. public class TestAccessibilityService extends AccessibilityService { @Override public void onAccessibilityEvent(Accessibil

  • Java多线程实现简易微信发红包的方法实例

    一. 首先我们先大致了解一下什么是多线程.(书上的解释) 程序是一段静态的代码,它是应用软件的蓝本.进程是程序的一次动态执行过程,对应了从代码加载执行,执行到执行完毕的一个完整的过程. 线程不是进程,线程是比进程更小的执行单位,一个进程在其执行过程中,可以产生多个线程形成多条执行线索,每条线索即每个线程也有它自身的产生,存在,消亡的过程,和进程共享操作系统的资源类似,线程间也可以共享进程中的某些内存单元,并利用这些共享单元来实现数据交换,实时通信与必要的同步操作,但与进程不同的是线程的中断和恢复

  • java 实现发短信功能---腾讯云短信

    前言 如今发短信功能已经成为互联网公司的标配,本篇文章将一步步实现java发送短信 考察了许多提供短信服务的三方,几乎所有都需要企业认证才可以使用,这对于个人学习非常不方便.多方比较之后,选择了腾讯云(此处并非做广告),原因有两点: 支持微信公众号认证(门槛低)每月赠送100条免费短信(适合个人学习)(这一点请矿家子弟自行忽略) 开发环境 请参照: Spring Boot实现模块化的几种方法 腾讯云 ---短信 找到短信服务 开通之后,点击添加应用 设置短信签名(以公众号为例),签名类型选择公众

随机推荐