Java 继承练习 普通平均红包-练习

//用户类(父类)

public class User {
    private String name; //姓名
    private int totalMoney; //余额

    public User() {
    }

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

    public String getName() {
        return name;
    }

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

    public int getTotalMoney() {
        return totalMoney;
    }

    public void setTotalMoney(int totalMoney) {
        this.totalMoney = totalMoney;
    }

    public void show() {
        System.out.println("姓名="+this.name+",余额="+this.totalMoney);
    }
}

// 群主类(继承User类)

import java.util.ArrayList;

/**
 * Created by tianxin on 2020/2/21.
 * 群主类:(继承用户类)
 * 主要属性
 * 姓名
 * 余额
 *
 * 主要方法
 * 发红包
 * 给群里面的普通成员发红包,生成一个红包ArrayList
 * 群主自己的余额也要减少
 */
public class Manager extends User{
    public Manager() {
    }

    public Manager(String name, int totalMoney) {
        super(name, totalMoney);
    }

    //发红包,totalMoney表示红包的总金额,count表示红包的数量
    public ArrayList<Integer> send (int totalMoney, int count) {
        ArrayList<Integer> list = new ArrayList<>();
        int leftMoney = this.getTotalMoney();

        // 安全性检查
        if (leftMoney < totalMoney) {
            System.out.println("您的余额不足");
            return list; //返回空集[]
        }

        // 群主余额变动
        this.setTotalMoney(leftMoney-totalMoney);

        // 正常发红包(平均发红包,余数加到最后一个红包中)
        int avg = totalMoney / count;
        int mod = totalMoney % count;
        for (int i = 0; i < count - 1; i++) {
            list.add(avg);
        }
        list.add(avg+mod);

        return list;
    }
}

// 普通成员类

import java.util.ArrayList;
import java.util.Random;

/**
 * Created by tianxin on 2020/2/21.
 * 普通用户(继承用户类)
 * 主要属性:
 * 姓名
 * 余额
 *
 * 主要方法:
 * 抢红包(随机在红包中抽取一个红包,余额增加)
 */
public class Member extends User{
    public Member() {
    }

    public Member(String name, int totalMoney) {
        super(name, totalMoney);
    }

    // 抢红包
    public void receive(ArrayList<Integer> list) {
        int index = new Random().nextInt(list.size());
        int totalMoney = this.getTotalMoney(); //之前的余额
        int money = list.remove(index); //红包金额 并从红包里消失
        this.setTotalMoney(totalMoney+money);  // 设置新的金额
    }
}

// 发红包主类

import java.util.ArrayList;

/**
 * Created by tianxin on 2020/2/21.
 */
public class RedPackageMain {
    public static void main(String[] args) {
        // 生成一个群主
        Manager manager = new Manager("群主",100);
        manager.show();

        // 生成三个普通成员
        Member one = new Member("成员1",0);
        Member two = new Member("成员2",0);
        Member three = new Member("成员3",0);
        one.show();
        two.show();
        three.show();

        System.out.println("====================");

        // 群主发红包
        ArrayList<Integer> list = manager.send(20,3);
        manager.show();

        // 普通成员抢红包
        one.receive(list);
        two.receive(list);
        three.receive(list);
        one.show();
        two.show();
        three.show();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值