热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

等份发红包案例

用户类packagecn.itcast.day09.demo14;publicclassUser{privateStringname;姓名privateintmoney;余额pu

用户类

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 java.util.ArrayList;public class Manager extends User {public Manager() {}public Manager(String name, int money) {super(name, money);}public ArrayList send(int totalMoney, int count){ //发多少钱,份数//首先用一个集合,储存若干个红包的金额ArrayList redlist = new ArrayList<>();//钱不够发红包时if(totalMoney > super.getMoney()){System.out.println("余额不足啦!");return redlist;}//先扣钱:原有的钱-发掉的钱super.setMoney(super.getMoney()-totalMoney);//平均每个人发多少int avg = totalMoney / count;//因为发的都是整数,最后余数都给最后一个红包int remainder = totalMoney % count;//先包前count-1个for (int i = 0; i }

成员类 

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 recieve(ArrayList list){//从多个红包中随机抽取一个//随机获得集合当中的一个索引编号int index = new Random().nextInt(list.size());//根据索引,从集合中删除,并得到被删除的红包,给我自己int recivedMOney= list.remove(index);//当前成员本来的钱int delta = super.getMoney();//修改余额super.setMoney(delta + recivedMoney);}}

主函数,运行结果 

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("刘备", 0);Member two = new Member("关羽", 0);Member three = new Member("张飞", 0);manager.show();one.show();two.show();three.show();System.out.println("======================");//发了20块钱,3个红包ArrayList list = manager.send(20,3);//分别收红包one.recieve(list);two.recieve(list);three.recieve(list);manager.show();one.show();two.show();three.show();System.out.println("======================");//发第二次红包ArrayList list2 = manager.send(50,3);one.recieve(list2);two.recieve(list2);three.recieve(list2);manager.show();one.show();two.show();three.show();}
}我叫:群主,我有多少钱:100
我叫:刘备,我有多少钱:0
我叫:关羽,我有多少钱:0
我叫:张飞,我有多少钱:0
======================
我叫:群主,我有多少钱:80
我叫:刘备,我有多少钱:6
我叫:关羽,我有多少钱:6
我叫:张飞,我有多少钱:8
======================
我叫:群主,我有多少钱:30
我叫:刘备,我有多少钱:22
我叫:关羽,我有多少钱:22
我叫:张飞,我有多少钱:26

 


推荐阅读
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • Java自带的观察者模式及实现方法详解
    本文介绍了Java自带的观察者模式,包括Observer和Observable对象的定义和使用方法。通过添加观察者和设置内部标志位,当被观察者中的事件发生变化时,通知观察者对象并执行相应的操作。实现观察者模式非常简单,只需继承Observable类和实现Observer接口即可。详情请参考Java官方api文档。 ... [详细]
  • Spring学习(4):Spring管理对象之间的关联关系
    本文是关于Spring学习的第四篇文章,讲述了Spring框架中管理对象之间的关联关系。文章介绍了MessageService类和MessagePrinter类的实现,并解释了它们之间的关联关系。通过学习本文,读者可以了解Spring框架中对象之间的关联关系的概念和实现方式。 ... [详细]
  • Givenasinglylinkedlist,returnarandomnode'svaluefromthelinkedlist.Eachnodemusthavethe s ... [详细]
  • 面向对象之3:封装的总结及实现方法
    本文总结了面向对象中封装的概念和好处,以及在Java中如何实现封装。封装是将过程和数据用一个外壳隐藏起来,只能通过提供的接口进行访问。适当的封装可以提高程序的理解性和维护性,增强程序的安全性。在Java中,封装可以通过将属性私有化并使用权限修饰符来实现,同时可以通过方法来访问属性并加入限制条件。 ... [详细]
  • (三)多表代码生成的实现方法
    本文介绍了一种实现多表代码生成的方法,使用了java代码和org.jeecg框架中的相关类和接口。通过设置主表配置,可以生成父子表的数据模型。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • 花瓣|目标值_Compose 动画边学边做夏日彩虹
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Compose动画边学边做-夏日彩虹相关的知识,希望对你有一定的参考价值。引言Comp ... [详细]
  • 颜色迁移(reinhard VS welsh)
    不要谈什么天分,运气,你需要的是一个截稿日,以及一个不交稿就能打爆你狗头的人,然后你就会被自己的才华吓到。------ ... [详细]
author-avatar
总是被姨妈折磨的吕孩纸
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有