发红包案例
发红包案例
群主发普通红包。某群有多名成员,群主给成员发普通红包。普通红包的规则;
1.群主的一笔金额从群主余额中扣除,平均分成n等份,让成员领取。
2.成员领取红包后,保存到成员余额中。
请根据描述,完成案例中所有类的定义以及指定类之间的继承关系,并完成发红包的操作。
发红包的逻辑,三要素:
返回值类型: ArrayList<Integer>
方法名称:send
参数列表:1、总共发多少钱 int totalMoney
2、分成多少份 int count
收红包的逻辑,三要素:
返回值类型:void
方法名称:receive
参数列表:ArrayList<Integer>
public class User { private String name; private int money; //展示余额 public void show(){ System.out.println("我叫:"+name+",我有"+money); } public User() { } public User(String name, int money) { this.name = name; this.money = money; } 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> list = new ArrayList<>(); int money = super.getMoney(); if (totalMoney>money){ System.out.println("余额不足"); return list; } super.setMoney(money-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; } }
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()); Integer delta = list.remove(index); int money = super.getMoney(); super.setMoney(money+delta); } }
public class Test { public static void main(String[] args) { Manager manager = new Manager("群主",500); Member one = new Member("成员A",0); Member two = new Member("成员B",0); Member three = new Member("成员C",0); manager.show(); one.show(); two.show(); three.show(); System.out.println("================="); ArrayList<Integer> list = manager.send(200, 3); one.receive(list); two.receive(list); three.receive(list); manager.show(); one.show(); two.show(); three.show(); } }
运行结果:


浙公网安备 33010602011771号