JAVA 实现简单的发红包案例


 1 package Demo511;  2 
 3 import java.util.ArrayList;  4 
 5 public class DemoSend {  6     public static void main(String[] args) {  7         Manager manager =new Manager("群主",1000);  8         Member one =   new Member("成员A",0);  9         Member two =   new Member("成员B",0); 10         Member three = new Member("成员C",0); 11         Member four =  new Member("成员D",0); 12         Member five =  new Member("成员E",0); 13 
14         ArrayList<Integer> redlist =manager.send(666,5); 15 
16  one.receive(redlist); 17  two.receive(redlist); 18  three.receive(redlist); 19  four.receive(redlist); 20  five.receive(redlist); 21 
22  manager.show(); 23  one.show(); 24  two.show(); 25  three.show(); 26  four.show(); 27  five.show(); 28  } 29 }

👇是成员类,群主继承成员,群员继承成员

 1 package Demo511;  2 
 3 public class User {  4     private String name ;  5     private int money;  6 
 7     public User(){  8 
 9  } 10 
11     public User(String name,int money) { 12         this.money=money; 13         this.name = name; 14  } 15     //展示一下,当前用户的钱
16     public void show(){ 17         System.out.println("我叫:"+name+",还有"+money+"块钱"); 18  } 19     public String getName(){ 20         return name; 21  } 22     public void setName(String name){ 23         this.name=name; 24  } 25     public int getMoney(){ 26         return money; 27  } 28     public void setMoney(int money){ 29         this.money=money; 30  } 31 }
 1 package Demo511;  2 
 3 import java.util.ArrayList;  4 /*
 5 默认构造,有参构造  6  */
 7 public class Manager extends User{  8         public Manager(){  9  } 10     public Manager(String name, int money) { 11         super(name, money); 12  } 13     public ArrayList<Integer> send(int totalMoney,int count) { 14             //用一个集合,来存储若干个红包的金额
15         ArrayList<Integer> redList = new ArrayList<>(); 16                     //查看群主的金钱余额
17         int leftMoney =super.getMoney();//群主当前余额
18         if (totalMoney>leftMoney){ 19             System.out.println("余额不足"); 20             return  redList;  //返回空集合
21  } 22         //扣钱就是重新设置余额
23         super.setMoney(leftMoney-totalMoney); 24          //发红包需要评分count份
25         int avg =totalMoney/count; 26         int mod =totalMoney%count; 27         //除不开的金钱,放到最后一个红包里面
28         for (int i = 0; i < count-1; i++) { 29  redList.add(avg); 30  } 31         redList.add(avg+mod); 32         return redList; 33  } 34 }
 1 package Demo511;  2 
 3 import java.util.ArrayList;  4 import java.util.Random;  5 
 6 public class Member extends User {  7     public Member() {  8  }  9     public Member(String name, int money) { 10         super(name, money); 11  } 12     public void receive(ArrayList<Integer>list){ 13         //从多个红包当中抽取一个给我。 14         //随机获取一个集合的索引编号。
15         int index =new Random().nextInt(list.size()); 16         //删除一个随机红包,并且给我。
17         int detal = list.remove(index); 18         int money = super.getMoney(); 19         super.setMoney(money+detal); 20  } 21 }

代码运行👇

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM