天天看点

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);
        }