基于java實(shí)現(xiàn)簡單發(fā)紅包功能
本文實(shí)例為大家分享了java實(shí)現(xiàn)簡單發(fā)紅包的具體代碼,供大家參考,具體內(nèi)容如下

這個(gè)案例是普通紅包,均分的,不是拼手氣紅包。
package nuc.edu.day01.demo05;
/**
* @author Administrator
* 用戶類
*/
public class User {
private String name;
private Double money;
public User() {
}
//顯示當(dāng)前余額
public void show(){
System.out.println(name + "當(dāng)前的余額為:" + money);
}
public User(String name, Double money) {
this.name = name;
this.money = money;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getMoney() {
return money;
}
public void setMoney(Double money) {
this.money = money;
}
}
package nuc.edu.day01.demo05;
import java.util.ArrayList;
/**
* @author Administrator
* 群主發(fā)紅包的操作
*/
public class Manager extends User {
public Manager() {
}
public Manager(String name, Double money) {
super(name, money);
}
/**定義發(fā)紅包的方法
* totalMoney:發(fā)紅包的總金額
* num:發(fā)紅包的個(gè)數(shù)*/
public ArrayList<Double> send(double totalMoney,int num){
/**存放紅包的集合*/
ArrayList<Double> redList = new ArrayList<>();
/**當(dāng)前余額*/
double leftMoney = super.getMoney();
if (leftMoney < totalMoney){
System.out.println("抱歉,您的余額不足");
return redList;
}
/**發(fā)完紅包的余額*/
super.setMoney(leftMoney-totalMoney);
/**將錢平均存入每個(gè)紅包中*/
double avg = totalMoney / num;
for (int i = 0; i < num; i++) {
redList.add(avg);
}
return redList;
}
}
package nuc.edu.day01.demo05;
import java.util.ArrayList;
import java.util.Random;
/**
* @author Administrator
* 群內(nèi)成員搶紅包的操作
*/
public class Member extends User {
public Member() {
}
public Member(String name, Double money) {
super(name, money);
}
/**定義收紅包的方法*/
public void receive(ArrayList<Double> list){
/**創(chuàng)建隨機(jī)紅包對應(yīng)的索引*/
int index = new Random().nextInt(list.size());
/**當(dāng)前余額*/
double money = super.getMoney();
/**根據(jù)索引將自己搶到的紅包刪掉*/
double delta = list.remove(index);
/**領(lǐng)完紅包后的余額*/
super.setMoney(money+delta);
}
}
package nuc.edu.day01.demo05;
import java.util.ArrayList;
/**
* @author Administrator
*/
public class Main {
public static void main(String[] args) {
Manager manager = new Manager("群主",300.00);
Member a = new Member("A",0.00);
Member b = new Member("B",10.00);
/**顯示當(dāng)前余額*/
manager.show();
a.show();
b.show();
System.out.println("============");
ArrayList<Double> redList = manager.send(52.00,2);
a.receive(redList);
b.receive(redList);
/**顯示搶完紅包后的余額*/
manager.show();
a.show();
b.show();
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
maven為MANIFEST.MF文件添加內(nèi)容的方法
這篇文章主要介紹了maven為MANIFEST.MF文件添加內(nèi)容的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
Java中利用Alibaba開源技術(shù)EasyExcel來操作Excel表的示例代碼
這篇文章主要介紹了Java中利用Alibaba開源技術(shù)EasyExcel來操作Excel表的示例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
任何Bean通過實(shí)現(xiàn)ProxyableBeanAccessor接口即可獲得動態(tài)靈活的獲取代理對象或原生對象的能力(最新推
這篇文章主要介紹了任何Bean通過實(shí)現(xiàn)ProxyableBeanAccessor接口即可獲得動態(tài)靈活的獲取代理對象或原生對象的能力,通過示例代碼看到,借助ProxyableBeanAccessor接口默認(rèn)實(shí)現(xiàn)的getReal、getProxy、selfAs方法,很靈活的按需獲取代理或非代理對象,需要的朋友可以參考下2024-02-02
Java+opencv3.2.0實(shí)現(xiàn)hough圓檢測功能
這篇文章主要為大家詳細(xì)介紹了Java+opencv3.2.0實(shí)現(xiàn)hough圓檢測,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02
MyBatisPlus中使用or()和and()遇到的問題及細(xì)節(jié)處理
這篇文章主要介紹了MyBatisPlus中使用or()和and()遇到的問題,本文通過多種寫法實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08

