java练习--群主发红包

it2023-06-24  81

无论群主和群成员都有属性name,money,放在父类User里

package com.qml.study; public class User { private String name ; private int 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 void show(){ System.out.println("我是"+name+"我有"+money+"元钱"); } }

群主类,有发红包的方法

package com.qml.study; import java.util.ArrayList; 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<Integer>(); int leftmoney = super.getMoney(); if (leftmoney < totalMoney){ System.out.println("余额不足"); return list;//返回空 } //扣钱,重新设置金额 super.setMoney(leftmoney-totalMoney); int i1 = totalMoney / count; //平均分的金额 int i2 = totalMoney % count; //剩余不能整除的金额放在最后一个红包里 //比如10元分4个红包,前三个每个2元,第四个4元 for (int i = 0; i < count-1; i++) { list.add(i1); } int last = i2+i1; list.add(last); return list; } }

群成员类,有收红包的方法

package com.qml.study; import java.util.ArrayList; import java.util.Random; public class Member extends User{ public Member(String name, int money) { super(name, money); } public Member(){} public void receive(ArrayList<Integer> list){ //从钱包中随机取1个 int index = new Random().nextInt(list.size()); //根据索引,从集合中删除金额,给自己加入 int delta = list.remove(index); int money = super.getMoney(); //自己原来的钱 //重新设置金额 super.setMoney(money+delta); } }

启动类

package com.qml.study; import java.util.ArrayList; public class RunMoney { public static void main(String[] args) { Manager manager = new Manager("群主",100); Member member1 = new Member("成员1",0); Member member2 = new Member("成员2",0); manager.show(); member1.show(); member2.show(); //群主发20元,发3个 ArrayList<Integer> list = manager.send(20,3); member1.receive(list); member2.receive(list); manager.show(); member1.show(); member2.show(); } }

随机打印一次: 我是群主我有100元钱 我是成员1我有0元钱 我是成员2我有0元钱

我是群主我有80元钱 我是成员1我有6元钱 我是成员2我有8元钱

最新回复(0)