java 红包接口开发_Java 发红包实现

分析

919ce1362c043f84fb8def826890ee38.png

用户类

public class User {

private String username; //定义用户变量

private int money; //定于余额

public User() {

}

public User(String username, int money) {

this.username = username;

this.money = money;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public int getMoney() {

return money;

}

public void setMoney(int money) {

this.money = money;

}

//创建show方法用来展示用户信息和余额

public void show() {

System.out.println(" " + username + " 我的余额:" + money);

}

public void show2(){

System.out.print(" " + username + " 红包金额:" + money);

System.out.println(" 我的余额"+money);

}

public void show1() {

System.out.println(" " + username + " 剩余金额:" + money);

}

}

群主类

import java.util.ArrayList;

public class QunZhu extends User {

//无参构造

public QunZhu() {

}

//有参构造

public QunZhu(String username, int money) {

super(username, money); //通过子类调用父类的构造方法

}

//发红包的自定义方法

//分析 ;返回值 发红包的各个红包金额 Arraylist

// 方法名称 发红包s end

// 参数列表 红包大小,份数 int leftmoney, int count

public ArrayList send(int leftmoney, int count) {

//定义一个变量用来存储群主的余额

int money = super.getMoney();

//判断发红包的金额是否小于余额

if (leftmoney > money) {

System.out.println("余额不足");

return null;

}

//如果红包金额小于,就发红包来扣钱,重新设置余额

setMoney(money - leftmoney);

//定义一个集合,用来存储若干个红包的金额

ArrayList arrayList = new ArrayList();

//设定每份红包的金额

int jiner = leftmoney / count;

//如果红包分的不平均,取模取余

int yushu = leftmoney % count;

//循环遍历,将每份红包金额放到对数组对象中

for (int i = 0; i < count - 1; i++) {

//将金额添加到数组对象的元素中

arrayList.add(jiner);

}

//将最后一个红包

int last = jiner + yushu;

//将最后一个红包添加到数组对象中

arrayList.add(last);

//返回值 集合

return arrayList;

}

}

群员类

import java.util.ArrayList;

import java.util.Random;

public class QunYuan extends User {

//无参构造

public QunYuan() {

}

//有参构造

public QunYuan(String username, int money) {

super(username, money); //调用父类的构造方法

}

//创建收红包或者打开红包的方法;

// 返回值 没有返回值 用void

// 方法名称 收红包或者打开红包的方法OpenHongBao

// 参数列表 Arraylist -----arraylist

public void OpenHongBao(ArrayList arrayList) {

// 从多个红包当中随便抽取一个,给我自己。

// 随机获取一个集合当中的索引编号

//创建随机数对象index

Random random = new Random();

int index = random.nextInt(arrayList.size());

//将红包金额给到自己

int delta = arrayList.remove(index);

//计算现有余额

int money = super.getMoney();

//将获得红包金额加到本来的余额里

super.setMoney(money + delta);

}

}

测试类

import java.util.ArrayList;

import java.util.Scanner;

public class DemoTest {

public static void main(String[] args) {

//创建群主对象

QunZhu qunZhu1 = new QunZhu("群主", 800);

//创建群员对象

QunYuan qunYuan1 = new QunYuan("小明", 0);

QunYuan qunYuan2 = new QunYuan("小黄", 0);

QunYuan qunYuan3 = new QunYuan("小里", 0);

QunYuan qunYuan4 = new QunYuan("小三", 0);

QunYuan qunYuan5 = new QunYuan("小蓝", 0);

QunYuan qunYuan6 = new QunYuan("小紫", 0);

QunYuan qunYuan7 = new QunYuan("小黑", 0);

System.out.println("=================");

qunZhu1.show();

System.out.println("=================");

qunYuan1.show();

qunYuan2.show();

qunYuan3.show();

qunYuan4.show();

qunYuan5.show();

qunYuan6.show();

qunYuan7.show();

System.out.println("===============");

//键盘输入

System.out.println(qunZhu1.getUsername() + " 发红包了");

Scanner scanner = new Scanner(System.in);

System.out.println("请输入红包金额:");

int money = scanner.nextInt();

System.out.println("请输入红包个数:");

int count = scanner.nextInt();

if (count < 7) {

System.out.println("输入错误");

return;

}

//创建新的集合用来发红包

ArrayList redlist = qunZhu1.send(money, count);

//群员打开红包

System.out.println("=================");

System.out.println("====红包抢完了====");

qunYuan1.OpenHongBao(redlist);

qunYuan2.OpenHongBao(redlist);

qunYuan3.OpenHongBao(redlist);

qunYuan4.OpenHongBao(redlist);

qunYuan5.OpenHongBao(redlist);

qunYuan6.OpenHongBao(redlist);

qunYuan7.OpenHongBao(redlist);

//展示金额

System.out.println("=================");

qunZhu1.show1();

System.out.println("=================");

qunYuan1.show2();

qunYuan2.show2();

qunYuan3.show2();

qunYuan4.show2();

qunYuan5.show2();

qunYuan6.show2();

qunYuan7.show2();

System.out.println("=================");

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值