您好,登錄后才能下訂單哦!
小編給大家分享一下Java發紅包的案例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
劃分為三個類,一個父類把金額和姓名都放在父類里。然后在新建兩個類,分別是群主類和普通成員類。群主類有發紅包的方法,普通成員類里有收紅包的方法。也就是只有群主才可以發紅包,普通成員只能收紅包。
package cn.itcast.day09.demo14;public class User { private String name;//姓名 private int money;//余額 public User() { } public User(String name, int money) { this.name = name; this.money = money; } //顯示余額 public void show(){ System.out.println("我叫"+name+",我有多少錢;"+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; }}
package cn.itcast.day09.demo14;import cn.itcast.day09.demo04.Arraylis;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> redList=new ArrayList<>(); //首先看下群主自己有多少錢 int LeftMoney=super.getMoney();//獲取群主當前余額 //判斷群主余額是否充足 if(totalMoney>LeftMoney){ System.out.println("余額不足"); return redList;//返回空集合 } //扣錢,更新余額。 //公式:最新余額=上次余額-發的錢 super.setMoney(LeftMoney-totalMoney); //發紅包需要平均拆分成為count份 int avg=totalMoney/count; int mod=totalMoney %count;//余數,也就是零頭 //下面把紅包一個一個放到集合當中 for (int i = 0; i < count-1; i++) { redList.add(avg); //除不開的零頭,抱在最后一個紅包當中 /*if(i==count-1){ redList.add(avg+mod); }*/ } int last=(avg+mod); //除不開的零頭,抱在最后一個紅包當中 redList.add(last); return redList; }}
package cn.itcast.day09.demo14;import java.util.ArrayList;import java.util.Random;//普通成員public class Member extends User{ public Member() { } public Member(String name, int money) { super(name, money); } //收紅包的方法 public void recive(ArrayList<Integer> list){ //從多個紅包當中隨便抽取一個,給自己 //隨機獲取一個list集合當中的隨機編號 int index=new Random().nextInt(list.size()); //根據索引,從集合當中刪除,并且得到被刪除的紅包給自己。 int delta=list.remove(index); //當前成員本來有多少錢 int money=super.getMoney(); //從新設置余額 super.setMoney(money+delta); }}
package cn.itcast.day09.demo14;import java.util.ArrayList;public class MainRedPacket { public static void main(String[] args) { Manager manager=new Manager("群主",100); 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> redList=manager.send(20,3); //三個普通成員收紅包 one.recive(redList); two.recive(redList); three.recive(redList); //群主最新余額 manager.show(); //成員最新余額 one.show(); two.show(); three.show(); }}
以上是Java發紅包的案例分析的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。