• 群主发普通红包。某群有多名成员,群主给成员发普通红包。普通红包的规则:
  1. 群主的一笔金额,从群主余额中扣除,平均分成n等份。,让成员领取。
  2. 成员领取红包后,保存到成员余额中。
    请根据描述,完成案例中所有类的定义以及指定类之间的继承关系,并完成发红包的操作。
  • 父类代码:
//系统用户
public class User {private String username;private int balance;public User(String username, int balance) {this.username = username;this.balance = balance;}//查看余额public void checkBalance() {System.out.println(username+"余额还有:"+balance);}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public int getBalance() {return balance;}public void setBalance(int balance) {this.balance = balance;}
}
  • 群主类代码:
package com.zhou.day0825.redpacket;import java.util.ArrayList;//群主
public class GroupOwner extends User{public GroupOwner(String username,int balance) {super(username,balance);}//发红包//money:发送的红包金额     count:发送红包的个数public ArrayList<Integer> sengRedPacket(int money,int count) {//ArrayList只能指定存放引用类型的数字ArrayList<Integer> redPacket = null;//群主发红包 1.判断红包金额是否大于当前余额//           2.红包发出去去,充值当前余额if (money>getBalance()) {System.out.println("抱歉,余额不足");return redPacket;}redPacket = new ArrayList<Integer>();int avg = money/count;//将红包平均分成count份int mod = money%count;//判断是否能够整除for (int i = 0;i<count-1;i++) {redPacket.add(avg);}redPacket.add(avg+mod);setBalance(getBalance()-money);//充值当前账户余额return redPacket;}
}
  • 群员类代码:
import java.util.ArrayList;
import java.util.Random;//群成员
public class Member extends User{public Member(String username, int balance) {super(username, balance);}//收红包public void receiveRedPacket(ArrayList<Integer> list) {//抢一个红包少一个Random rd = new Random();int index = rd.nextInt(list.size());Integer m = list.get(index);setBalance(getBalance()+m);//红包被人抢走 需要从当前容器中把该红包移除list.remove(index);}
}
  • 测试类代码:
package com.zhou.day0825.redpacket;//测试类
import java.util.ArrayList;public class Test {public static void main(String[] args) {GroupOwner group = new GroupOwner("刘老师",100);group.checkBalance();ArrayList<Integer> list = group.sengRedPacket(10,3);/*for (int i = 0;i<list.size();i++) {System.out.println(list.get(i));}group.checkBalance();*/Member m1 = new Member("小周",1000);Member m2 = new Member("小景",1000);Member m3 = new Member("小宋",1000);m1.receiveRedPacket(list);m2.receiveRedPacket(list);m3.receiveRedPacket(list);m1.checkBalance();m2.checkBalance();m3.checkBalance();}
}

Java继承的综合案例——群主发红包相关推荐

  1. JAVA继承的综合案例——群主发普通红包

    群主发普通红包 一.问题描述 群主发普通红包.某群有多名成员群主给成员发普通红包.普通红包的规则: 1.群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取. 2.成员领取红包后,保存到成员余 ...

  2. JAVA 群主发红包请红包案例 简易版

    综合案例:群主发红包 群主发普通红包.某群有多名成员,群主给成员发普通红包.       普通红包的规则:              1. 群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取 ...

  3. 继承练习:发红包案例实现(群主发红包、群成员接收红包)

    //User package ExtendTest; /*群主发红包的功能实现(用到Extend): 父类:User(用户) 属性:name(姓名),money(总金额) 方法:无参构造和含参数(na ...

  4. 群主发红包——java学习

    package com.cn.test; //父类 用户 public class User {private String name;private int money;public User() ...

  5. Java练习继承群主发红包案例(分析与实现)

    题目: 群主发普通红包,某群有多名成员,群主给成员发普通红包,普通红包的规则: 群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取: 成员领取红包后,保存到成员余额中. 请根据描述,完成案例 ...

  6. 【继承】【群主发红包案例】

    一.题目要求: 群主发普通红包.某群有多名成员,群主给成员发普通红包.普通红包的规则: ①.群主的- -笔金额, 从群主余额中扣除,平均分成n等份,让成员领取. ②.成员领取红包后,保存到成员余额中. ...

  7. Java实现微信、QQ等群主发红包实例(普通红包)

    许久没有写blog 手有点生,但是准备开启常更模式了! 最近重拾Java知识,挑一些有趣的案例分享给大家.(拼手气红包案例) 分析: 首先,群主和成员都是微信.QQ等应用程序的用户,他们都可以归为用户 ...

  8. java练习--群主发红包

    无论群主和群成员都有属性name,money,放在父类User里 package com.qml.study;public class User {private String name ;priva ...

  9. 群主发红包-java实现

    package work01;public class RedPackage {int redPaclageNum;//红包数目double allMoney;//红包总金额double leftMo ...

最新文章

  1. 【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 七 )
  2. 关于微信 setData 回调函数中的坑
  3. c获取当前系统时间_Python系统:程序和进程
  4. jz2440-uboot-201204版本移植【学习笔记】【原创】
  5. CentOS MySQL 5.7编译安装
  6. leetcode - 63. 不同路径 II
  7. TSP旅行商问题的Hopfield求解过程
  8. 32个参数累加_「机械设计教程」滚珠丝杠选型过程中考虑的9个参数
  9. Java 反编译工具哪家强?对比分析瞧一瞧
  10. VS编译器的简单操作
  11. GRPC入门使用及测试用例源码
  12. w7电脑蓝屏怎么解决_为你解答win7电脑蓝屏怎么办
  13. AutoSar之CAN网络管理详解
  14. 2020年度总结,展望2021
  15. 洛谷3966 BZOJ3172 单词 AC自动机
  16. HDUOJ 6806 Equal Sentences
  17. javaSE 笔记全!
  18. 一亩三分地,答题题库,1point3acres (Time series,每周末答题一次/更新一次)
  19. 简介IntelliJ IDEAD
  20. 计算机软件及英文名,计算机技术与软件专业技术资格(水平)考试 各级别 英文名...

热门文章

  1. puzzle(1011)平面逆推:康斯逆推
  2. 服务器ddr3和ddr3性能对比,性能实测DDR4和DDR3差距_内存硬盘行情-中关村在线
  3. ebay 后台HTML有尺寸宽度要求吗,eBay后台基础设置(专题)
  4. 【学习进度】截至2022.9.6,已学习的C++知识
  5. 黑猴子的家:HBase 服役节点(commissioning)
  6. Json学习总结(7)——JSON为什么是数据交换格式的首选
  7. C#基础知识之托管代码和非托管代码
  8. html 里面的 role 属性是什么意思
  9. Windows下创建自定义服务的正确姿势(InstrsrvSrvany)
  10. 图片轮播(现在手机app上常见的)