• 技术文章 >Java >java教程

    Java发红包实例之继承练习

    coldplay.xixicoldplay.xixi2020-08-18 16:56:05转载1199

    php入门到就业线上直播课:进入学习

    【相关学习推荐:java基础教程

    案例:

    在这里插入图片描述

    案例图解:

    划分为三个类,一个父类把金额和姓名都放在父类里。然后在新建两个类,分别是群主类和普通成员类。群主类有发红包的方法,普通成员类里有收红包的方法。也就是只有群主才可以发红包,普通成员只能收红包。

    代码实现:

    父类

    package cn.itcast.day09.demo14;public class User {
        private String name;//姓名
        private int money;//余额
    
        public User() {
        }
    
        public User(String name, int money) {
            this.name = name;
            this.money = money;
        }
        //显示余额
        public void show(){
           System.out.println("我叫"+name+",我有多少钱;"+money);
        }
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getMoney() {
            return money;
        }
    
        public void setMoney(int money) {
            this.money = money;
        }}

    群主类:

     package cn.itcast.day09.demo14;import cn.itcast.day09.demo04.Arraylis;import java.util.ArrayList;public class Manager extends User {
        public  Manager(){
    
        }
        public Manager(String name, int money) {
            super(name, money);
        }
        //发红包方法
        public ArrayList<Integer> send(int totalMoney,int count){
            //首先需要一个集合,用来存储若干个红包金额
            ArrayList<Integer> redList=new ArrayList<>();
    
            //首先看下群主自己有多少钱
            int LeftMoney=super.getMoney();//获取群主当前余额
            //判断群主余额是否充足
            if(totalMoney>LeftMoney){
                System.out.println("余额不足");
                return redList;//返回空集合
            }
    
            //扣钱,更新余额。
            //公式:最新余额=上次余额-发的钱
            super.setMoney(LeftMoney-totalMoney);
            //发红包需要平均拆分成为count份
            int avg=totalMoney/count;
            int mod=totalMoney %count;//余数,也就是零头
    
            //下面把红包一个一个放到集合当中
            for (int i = 0; i < count-1; i++) {
                redList.add(avg);
                //除不开的零头,抱在最后一个红包当中
                /*if(i==count-1){
                    redList.add(avg+mod);
                }*/
            }
            int last=(avg+mod);
            //除不开的零头,抱在最后一个红包当中
            redList.add(last);
            return  redList;
        }}

    普通成员类:

     package cn.itcast.day09.demo14;import java.util.ArrayList;import java.util.Random;//普通成员public class Member extends User{
        public Member() {
        }
    
        public Member(String name, int money) {
            super(name, money);
        }
        //收红包的方法
        public void recive(ArrayList<Integer> list){
            //从多个红包当中随便抽取一个,给自己
            //随机获取一个list集合当中的随机编号
            int index=new Random().nextInt(list.size());
            //根据索引,从集合当中删除,并且得到被删除的红包给自己。
            int delta=list.remove(index);
            //当前成员本来有多少钱
            int money=super.getMoney();
            //从新设置余额
            super.setMoney(money+delta);
        }}

    客户端:

     package cn.itcast.day09.demo14;import java.util.ArrayList;public class MainRedPacket {
        public static void main(String[] args) {
            Manager manager=new Manager("群主",100);
            Member one=new Member("成员A",0);
            Member two=new Member("成员B",0);
            Member three=new Member("成员C",0);
            manager.show();
            one.show();
            two.show();
            three.show();
            System.out.println("=================================");
            ArrayList<Integer> redList=manager.send(20,3);
            //三个普通成员收红包
            one.recive(redList);
            two.recive(redList);
            three.recive(redList);
            //群主最新余额
            manager.show();
            //成员最新余额
            one.show();
            two.show();
            three.show();
        }}

    结果

    相关学习推荐:编程视频

    以上就是Java发红包实例之继承练习的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:learnku,如有侵犯,请联系admin@php.cn删除

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:java 发红包 继承
    上一篇:java运算符优先级是什么样的 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• java中的抽象类可以被继承吗• java中的private方法可以继承么• java中的静态属性与静态方法可以被继承么• Java中使用继承时需要注意什么• 继承的特性及关键字介绍
    1/1

    PHP中文网