使用idea編寫發紅包程式
- 關于使用到的一些知識點
-
- 具體實作
- 代碼展示
- 運作結果及分析
關于使用到的一些知識點
1.構造方法
2.類的繼承
3.封裝
4.構造方法
5.Random類和ArrayList類的使用
具體實作
- 建立一個父類User,包含name和balance兩個屬性和一個show方法用于展示資訊;
- 建立qunzhu類負責發紅包使用Arraylist存儲每個紅包金額;
- 建立member類用于接收紅包;
- 建立tset類運作主程式發紅包;
代碼展示
User類
package com.baidu.Demo01;
//javabean檔案
public class User {
private String name;
private double balance;
public void show (){
System.out.println(getName()+"餘額"+balance);
}
public User() { }
public User(String name, double balance) {
this.name = name;
this.balance = balance;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
qunzhu類
package com.baidu.Demo01;
import java.util.ArrayList;
public class QunZhu extends User {
private ArrayList<Double> doubles = new ArrayList<>();
public ArrayList<Double> getDoubles() {
return doubles;
}
public void SendHongbao(double money, int counter){
//判斷錢夠不夠
if (money>=getBalance()){
System.out.println("錢不夠哦");
return;
}
// 擷取餘額
double balance=getBalance();
balance-=money;
// 更新餘額
setBalance(balance);
// 精确到分
money*=100;
int m=(int)(money/counter);
double yu=money %counter;
yu/=100;
for (int i=0;i<counter;i++){
doubles.add(m/100.0);
}
if (yu==0){
doubles.add(m/100.0);
}else{
doubles.add(m/100.0+yu);
}
}
}
member類
package com.baidu.Demo01;
import java.util.ArrayList;
import java.util.Random;
public class Member extends User {
public void shouhongbao(ArrayList<Double> list){
// 擷取紅包個數
int size =list.size();
Random random = new Random();
// 生成随機紅包
int index = random.nextInt(size);
Double money=list.get(index);
// 删除已擷取的紅包
list.remove(index);
setBalance(getBalance()+money);
}
}
test類
package com.baidu.Demo01;
import java.util.ArrayList;
import java.util.Random;
public class Member extends User {
public void shouhongbao(ArrayList<Double> list){
// 擷取紅包個數
int size =list.size();
Random random = new Random();
// 生成随機紅包
int index = random.nextInt(size);
Double money=list.get(index);
// 删除已擷取的紅包
list.remove(index);
setBalance(getBalance()+money);
}
}
運作結果及分析

這裡程式出現了一些問題多出了一塊錢。原因是沒有對餘數除以一百,類型也轉換成double的就行了
修改後qunzhu類後半部代碼如下
int m=(int)(money/counter);
double yu=money %counter;
yu/=100;
for (int i=0;i<counter;i++){
doubles.add(m/100.0);
}
if (yu==0){
doubles.add(m/100.0);
}else{
doubles.add(m/100.0+yu);
}