User類
package redbag;
public class User {
private String userName;//用戶名
private int leftMoney;//余額
// 屬性私有酷窥,提供get,set方法
public User() {
}
public User(String userName, int leftMoney) {
this.userName = userName;
this.leftMoney = leftMoney;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getLeftMoney() {
return leftMoney;
}
public void setLeftMoney(int leftMoney) {
this.leftMoney = leftMoney;
}
public void show() {
System.out.println("用戶" + userName + "\t"+"余額為" + leftMoney + "元");
}
}
發(fā)包類
package redbag;
import java.util.ArrayList;
public class Manager extends User {
public Manager() {
}
public Manager(String userName, int leftMoney) {
super(userName, leftMoney);
}
// 發(fā)紅包
public ArrayList<Integer> send(int totalMoney, int count){
ArrayList<Integer> redList = new ArrayList<>();
int leftMoney = super.getLeftMoney();
//判斷
if(totalMoney>leftMoney)
{
System.out.println("余額不足");
}
super.setLeftMoney(leftMoney-totalMoney);
//每個(gè)人發(fā)的錢
int avg = totalMoney/count;
//除不開颅停,余出來的錢
int mod = totalMoney%count;
for (int i = 0; i < count-1; i++) { //最后一個(gè)做特殊處理
redList.add(avg);//每人分多少個(gè)
}
int last = avg + mod;
redList.add(last);
return redList;
}
}
收包類
package redbag;
import java.util.ArrayList;
import java.util.Random;
public class Member extends User {
public Member() {
}
public Member(String userName, int leftMoney) {
super(userName, leftMoney);
}
//收紅包
public void receive(ArrayList<Integer> list ){
Random random = new Random();
//隨機(jī)抽紅包的索引
int index = random.nextInt(list.size());
// Integer money = list.get(index); //查看抽的錢
//收完之后刪除
Integer removeMoney = list.remove(index);//拿的錢
//更新余額
int leftMoney = super.getLeftMoney();
int updateMoney = leftMoney + removeMoney;
//更新之后的錢=原來的錢+拿的錢
super.setLeftMoney(updateMoney);
}
}
測試
package redbag;
import java.util.ArrayList;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Manager manager = new Manager("群主",200);
Member one = new Member("成員A",0);
Member two = new Member("成員B",0);
Member three = new Member("成員C",0);
manager.show(); //為什么.show蚁堤?因?yàn)槔^承了
one.show();
two.show();
three.show();
System.out.println("請輸入金額:");
Scanner scanner = new Scanner(System.in);
int money = scanner.nextInt();
System.out.println("請輸入發(fā)紅包個(gè)數(shù):");
int count = scanner.nextInt();
//調(diào)用發(fā)紅包
ArrayList<Integer> redList = manager.send(money,count);
//調(diào)用收紅包
one.receive(redList);//第一個(gè)人收
two.receive(redList);
three.receive(redList);
manager.show();
one.show();
two.show();
three.show();
}
}
輸出
用戶群主 余額為200元
用戶成員A 余額為0元
用戶成員B 余額為0元
用戶成員C 余額為0元
請輸入金額:
50
請輸入發(fā)紅包個(gè)數(shù):
3
用戶群主 余額為150元
用戶成員A 余額為18元
用戶成員B 余額為16元
用戶成員C 余額為16元