天天看點

java入門:使用java的基礎知識編寫一個具有發紅包功能的小程式關于使用到的一些知識點

使用idea編寫發紅包程式

  • 關于使用到的一些知識點
    • 具體實作
    • 代碼展示
    • 運作結果及分析

關于使用到的一些知識點

1.構造方法

2.類的繼承

3.封裝

4.構造方法

5.Random類和ArrayList類的使用

具體實作

  1. 建立一個父類User,包含name和balance兩個屬性和一個show方法用于展示資訊;
  2. 建立qunzhu類負責發紅包使用Arraylist存儲每個紅包金額;
  3. 建立member類用于接收紅包;
  4. 建立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);
    }
}
           

運作結果及分析

java入門:使用java的基礎知識編寫一個具有發紅包功能的小程式關于使用到的一些知識點

這裡程式出現了一些問題多出了一塊錢。原因是沒有對餘數除以一百,類型也轉換成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);
        }