定义用户类:
public class User {
private String name;// 姓名
private int leftMoney;// 余额
public User() {
}
public User(String name, int leftMoney) {
this.name = name;
this.leftMoney = leftMoney;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getLeftMoney() {
return leftMoney;
}
public void setLeftMoney(int leftMoney) {
this.leftMoney = leftMoney;
}
public void show(){
System.out.println("我是:"+name+",我的余额是:"+leftMoney);
}
}
定义群主类:
public class QunZhu extends User {
public QunZhu() {
}
public QunZhu(String name, int leftMoney) {
super(name, leftMoney);
}
// 发红包
/*
明确方法返回值类型: ArrayList<Integer>
明确方法名: faHongBao
明确方法参数: 红包金额 int 红包个数 int
明确方法体:
10元 5包 每个包2元
10元 3包 3 3 3
*/
public ArrayList<Integer> faHongBao(int redMoney,int count){
// 0.创建一个集合用来存储这多个小红包
ArrayList<Integer> list = new ArrayList<>();
// 1.获取群主余额
int leftMoney = getLeftMoney();
// 2.判断是否够发红包 余额 >= 红包金额
if (leftMoney < redMoney){
// 3.如果不够发红包,就返回null
return null;
}else{
// 4.如果够发红包,就发红包
// 4.0 群主的余额要减少
setLeftMoney(getLeftMoney() - redMoney);
// 4.1 求这多个红包的平均金额
int avg = redMoney / count;
// 4.2 求除不尽剩余的金额
int left = redMoney % count;
// 4.3 把count-1个平均红包添加到集合中
for (int i = 0;i<count-1;i++){
list.add(avg);
}
// 4.4 把除不尽剩余的金额 加上 一个平均红包 添加到集合中
list.add(avg+left);
}
// 5. 返回集合
return list;
}
}
定义成员类:
import java.util.ArrayList;
import java.util.Random;
public class QunYuan extends User {
public QunYuan() {
}
public QunYuan(String name, int leftMoney) {
super(name, leftMoney);
}
// 抢红包的功能
/*
明确方法返回值类型: void
明确方法名: qiangHongBao
明确方法参数: ArrayList<Integer>
明确方法体:
*/
public void qiangHongBao(ArrayList<Integer> list){
// 随机抽取一个红包 集合是根据索引取元素,所以就随机产生一个索引
// 创建随机生成器
Random r = new Random();
// 随机产生一个索引 [0,list.size-1]
int index = r.nextInt(list.size());//[0] ---0
System.out.println(index);
// 根据产生随机索引去list集合中取出红包
Integer redMoney = list.get(index);
// 要删除刚刚取出来的红包金额元素
list.remove(index);
// 把抢到的红包金额添加到自己的余额中
setLeftMoney(getLeftMoney() + redMoney);
}
}
定义测试类:
public class Demo12 {
public static void main(String[] args) {
QunZhu qz = new QunZhu("群主",10);
QunYuan qy1 = new QunYuan("群员1",0);
QunYuan qy2 = new QunYuan("群员2",0);
QunYuan qy3 = new QunYuan("群员3",0);
// 群主发红包
ArrayList<Integer> list = qz.faHongBao(10, 3);
// {4}
// 群员抢红包
qy1.qiangHongBao(list);// list集合的长度是3
qy2.qiangHongBao(list);// list集合的长度是2
qy3.qiangHongBao(list);// list集合的长度是1
// 显示信息
qz.show();
qy1.show();
qy2.show();
qy3.show();
}
}