小兔网

Java发红包实例之继承练习

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

案例:

知识兔

在这里插入图片描述

案例图解:

知识兔

划分为三个类,一个父类把金额和姓名都放在父类里。然后在新建两个类,分别是群主类和普通成员类。群主类有发红包的方法,普通成员类里有收红包的方法。也就是只有群主才可以发红包,普通成员只能收红包。
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发红包实例之继承练习

相关学习推荐:编程视频

以上就是Java发红包实例之继承练习的知识。速戳>>知识兔学习精品课!