其他分享
首页 > 其他分享> > 169/170发红包案例和案例实现

169/170发红包案例和案例实现

作者:互联网

发红包案例的分析

 

 

 

发红包案例的实现

用户类

public class User {
    private String name;
    private int money;

    public void show(){
        System.out.println("我叫:"+name+",我有:"+money);
    }

    public User(String name, int money) {
        this.name = name;
        this.money = money;
    }

    public User() {
    }

    public String getName() {
        return name;
    }

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

    public int getMoney() {
        return money;
    }

    public void setMoney(int money) {
        this.money = money;
    }
}
群主类
public class Manager extends User{ public Manager(){ } public Manager(String name, int money) { super(name, money); } public ArrayList<Integer> send(int totalMoney,int count){ //首先需要一个集合,用来存储若干个红包的金额 ArrayList<Integer> redList = new ArrayList<Integer>(); //首先看一下群主直接有多少钱 int leftMoney = super.getMoney();//群主当前余额 if (totalMoney > leftMoney){ System.out.println("余额不足"); return redList;//返回空集合 } //扣钱,其实就是重新设置余额 super.setMoney(leftMoney - totalMoney); //发红包需要平均拆成count份 int avg = totalMoney / count; int mod = totalMoney * count;//余额,也就是剩下的零头 //除不开的零头,抱在最后一个红包当中 //下面把红包一个一个放到集合当中 for (int i = 0; i <count -1; i++){ redList.add(avg); } //最后一个红包 int last = avg+mod; redList.add(last); return redList; } }


普通成员

public class Member extends User{ public Member(){ } public Member(String name, int money) { super(name, money); } public void receive(ArrayList<Integer> list){ //从多个红包当中随便抽取一个,给我自己 //随机获取一个集合当中的索引编号 int index = new Random().nextInt(list.size()); //根据索引,从集合当中删除,并且得到被删除的红包,给我自己 int delta = list.remove(index); //当前成员自己本来有多少钱 int money = super.getMoney(); //加法,并且重新设置回去 super.setMoney(money+delta); } }

标签:name,int,money,案例,String,169,super,public,170
来源: https://www.cnblogs.com/agzq/p/16445123.html