Java-萌新分享下初级发红包案例

准备工作

先定义三个类,一个是User,group(发红包),Menber(收红包)
思路:
1把群主跟收红包的人共性抽取出来,抽取出来的定义为一个父类,成员参数为String name,int balance,同时里面还需要写一个查看用户还有多少钱的方法。
2创建发红包的类来继承父类,同时写一个发红包的方法,确定三个事情,分别为,返回值类型是一个list的集合,参数列表分别为发的钱数,和总共发多少份红包。
3定义一个收红包的类,也同时继承父类,里面也需要一个收红包的方法,返回值类型为void,参数列表为一个集合。

父类的代码

	private String name;//姓名
    private int balance;//余额

    public User() {
    }

    public User(String name, int balance) {
        this.name = name;
        this.balance = balance;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getBalance() {
        return balance;
    }

    public void setBalance(int balance) {
        this.balance = balance;
    }

    //展示下用户还有多少钱
    public void show(){
        System.out.println("我叫:"+name+"还有"+balance+"块钱");
    }

发红包类

public class group extends User{
    public group(){

    }

    public group(String name, int balance) {
        super(name, balance);
    }

    /**
     * 发红包的方法
     * @param money
     * @param count
     * @return
     */
    public ArrayList<Integer> send(int money, int count){
        //先定义一个集合
        ArrayList<Integer> list =new ArrayList<>();
        //首先看下群主自己有多少钱
        int leftmoney =super.getBalance();
        if(money >leftmoney){
            System.out.println("钱不够");
            return list;
        }

        //扣钱操作,并且重新设置钱
        super.setBalance(leftmoney-money);

        //发红包,进行来平均拆分
        int avg =money /count;
        int mod =money % count;  //取余数,剩余零头


        //使用循环,把红包放到集合里面去
        for (int i = 0; i < count -1; i++) {
            list.add(avg);

        }
        int last =avg +mod;//最后一个红包
        list.add(last);

        return list;
    }
}

收红包的类

public class Menber extends User{
    public Menber(){

    }

    public Menber(String name, int balance) {
        super(name, balance);
    }

    public void receive(ArrayList<Integer> list){
        //随机取集合里面的一个索引
        int index =new Random().nextInt(list.size());
        
        //根据索引拿到自己被删除的元素。也就是红包,在返回自己
        int delta = list.remove(index);
        //当前自己成员有多少钱
        int money =super.getBalance();
        super.setBalance(money+delta);

    }
}

效果图
在这里插入图片描述
萌新在工作之余,分享下自己学java的过程,这个发红包还有很多欠缺的地方,有时间会继续补齐,有大佬看到的时候,请多多指教,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值