Java发红包实例之继承练习

互联网 20-8-18

【相关学习推荐: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发红包实例之继承练习的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 继承
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:java运算符优先级是什么样的

相关资讯