红包案例
群主发普通红包 某群有多名成员 群主给成员发普通红包 普通红包的规则:
1.群主的一笔金额 从群主余额里扣除 平均分成n等份 让成员领取
2.成员领取红包后 保存到成员余额中
请根据描述 完成案例中所有类的定义以及制定类之间的继承关系 并完成发红包的操作
分析图
代码
父类:
public class User {
private String name;//名字
private int meney;//余额
public User(String name, int meney) {
this.name = name;
this.meney = meney;
}
public User() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getMeney() {
return meney;
}
public void setMeney(int meney) {
this.meney = meney;
}
//成员方法
public void show(){
System.out.println("我叫"+name+",余额:"+meney);
}
}
群主类:
public class Manager extends User {
public Manager() {
}
public Manager(String name, int meney) {
super(name, meney);
}
public ArrayList<Integer> send(int totalMoney,int count){
//创建一个集合用于存放红包
ArrayList<Integer> list = new ArrayList<>();
//设置一个变量接收群主的余额
int lefMoney=super.getMeney();
//判断发送的红包钱数是否大于群主的余额
if (totalMoney>lefMoney){
//如果是就提示余额不足
System.out.println("余额不足");
//返回一个空集合 证明发送失败
return list;
}
//如果不是就扣除余额并重新设置群主的余额
super.setMeney(lefMoney-totalMoney);
//将红包拆分
int avg=totalMoney/count;
//发红包除不尽数放到这个变量里
int mod=totalMoney%count;
//for循环将红包存进集合中,-1是因为我们要将除不尽的数塞进红包发给最后一个人,所以将它移除
for (int i = 0; i < count-1; i++) {
list.add(avg);
}
//将除不尽的数放进集合
int last=avg+mod;
list.add(last);
return list;
}
}
群成员类:
public class Member extends User {
public Member(String name, int meney) {
super(name, meney);
}
public Member() {
}
public void receive(ArrayList<Integer> list){
//设置一个随机数当做集合当中的编号 范围就是集合的长度
int anInt = new Random().nextInt(list.size());
//根据索引 从集合当中删除
Integer remove = list.remove(anInt);
//获取群成员自己本来的钱
int meney = super.getMeney();
//将红包的钱加上
super.setMeney(meney+remove);
}
}
测试类:
public class test {标签:红包,name,int,meney,案例,群主,public From: https://www.cnblogs.com/shenziyi/p/16797928.html
public static void main(String[] args) {
//创建群主对象
Manager owner = new Manager("群主", 100);
//创建群成员的对象
Member memberA = new Member("成员A", 0);
Member memberB = new Member("成员B", 0);
Member memberC = new Member("成员C", 0);
//查询群主的余额
owner.show();
//查询成员A-C的余额
memberA.show();
memberB.show();
memberC.show();
System.out.println("-------------------------------");
//群主发红包 群主发20 三份红包
ArrayList<Integer> send = owner.send(20, 3);
//群成员接收红包
memberA.receive(send);
memberB.receive(send);
memberC.receive(send);
//查询群主的余额
owner.show();
//查询成员A-C的余额
memberA.show();
memberB.show();
memberC.show();
}
}