//用户类(父类)
public class User {
private String name; //姓名
private int totalMoney; //余额
public User() {
}
public User(String name, int totalMoney) {
this.name = name;
this.totalMoney = totalMoney;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getTotalMoney() {
return totalMoney;
}
public void setTotalMoney(int totalMoney) {
this.totalMoney = totalMoney;
}
public void show() {
System.out.println("姓名="+this.name+",余额="+this.totalMoney);
}
}
// 群主类(继承User类)
import java.util.ArrayList;
/**
* Created by tianxin on 2020/2/21.
* 群主类:(继承用户类)
* 主要属性
* 姓名
* 余额
*
* 主要方法
* 发红包
* 给群里面的普通成员发红包,生成一个红包ArrayList
* 群主自己的余额也要减少
*/
public class Manager extends User{
public Manager() {
}
public Manager(String name, int totalMoney) {
super(name, totalMoney);
}
//发红包,totalMoney表示红包的总金额,count表示红包的数量
public ArrayList<Integer> send (int totalMoney, int count) {
ArrayList<Integer> list = new ArrayList<>();
int leftMoney = this.getTotalMoney();
// 安全性检查
if (leftMoney < totalMoney) {
System.out.println("您的余额不足");
return list; //返回空集[]
}
// 群主余额变动
this.setTotalMoney(leftMoney-totalMoney);
// 正常发红包(平均发红包,余数加到最后一个红包中)
int avg = totalMoney / count;
int mod = totalMoney % count;
for (int i = 0; i < count - 1; i++) {
list.add(avg);
}
list.add(avg+mod);
return list;
}
}
// 普通成员类
import java.util.ArrayList;
import java.util.Random;
/**
* Created by tianxin on 2020/2/21.
* 普通用户(继承用户类)
* 主要属性:
* 姓名
* 余额
*
* 主要方法:
* 抢红包(随机在红包中抽取一个红包,余额增加)
*/
public class Member extends User{
public Member() {
}
public Member(String name, int totalMoney) {
super(name, totalMoney);
}
// 抢红包
public void receive(ArrayList<Integer> list) {
int index = new Random().nextInt(list.size());
int totalMoney = this.getTotalMoney(); //之前的余额
int money = list.remove(index); //红包金额 并从红包里消失
this.setTotalMoney(totalMoney+money); // 设置新的金额
}
}
// 发红包主类
import java.util.ArrayList;
/**
* Created by tianxin on 2020/2/21.
*/
public class RedPackageMain {
public static void main(String[] args) {
// 生成一个群主
Manager manager = new Manager("群主",100);
manager.show();
// 生成三个普通成员
Member one = new Member("成员1",0);
Member two = new Member("成员2",0);
Member three = new Member("成员3",0);
one.show();
two.show();
three.show();
System.out.println("====================");
// 群主发红包
ArrayList<Integer> list = manager.send(20,3);
manager.show();
// 普通成员抢红包
one.receive(list);
two.receive(list);
three.receive(list);
one.show();
two.show();
three.show();
}
}