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