170 发收红包案例分析与程序编写
package demo14;//170 发收红包案例分析与程序编写
/*分析部分-
*共有部分 取名叫用户类,包含1.姓名2.余额-----父类
- 各自所有信息-
- 群主-发红包–对应发红包方法
- 普通群成员-收红包–对应收红包方法
- 发红包的逻辑 三要素-
- 返回值类型-ArrayList
- 方法名称-send()
*参数列表-1.总共发多少钱 int totalMoney -
2.分成多少份 int count
- public ArrayListsend(in totalMoney, int count){}
- 收红包的逻辑三要素-
- 返回值类型-void
- 方法名称-receive
- 参数列表ArrayList
- public void receive(ArrayListList){}
- */
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 void setName(String name) {
this.name = name;
}
public String getName(){
return name;
}
public void setMoney(int money){
this.money=money;
}
public int getMoney(){
return money;
}
}
/* package 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("**********************************");
//群主总共发20块钱,分为3个红包
ArrayList<Integer>redList=manager.send(50,3);
one.Receive(redList);
two.Receive(redList);
three.Receive(redList);
System.out.println("*************************");
manager.show();
one.show();
two.show();
three.show();
}
}
*/
/*package demo14;
import java.util.ArrayList;
public class Manager extends User {
//这是一个默认构造,写上之后更加方便
public Manager(){
//默认的有一个super();过程
}
//子类需要继承抽象父类的构造函数,因为必须写下面这个有参数构造方法
public Manager (String name,int money){
super(name,money);
}
public ArrayList send(int totalMoney, int count) {
//首先需要一个集合,用来存储若干个红包的金额
ArrayList 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);
}
//最后一个红包
int last=avg+mod;
RedList.add(last);
return RedList;
}
}
*/
/*package 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 Receive(ArrayList<Integer>list) {
//从一系列红包当中把红包一个一个抽取
//随机获取一个集合当中的索引编号
int index=new Random().nextInt(list.size());
//根据索引,从集合当中删除,并且得到被删除的红包,给我自己
int delta=list.remove(index);
//当前成员自己本来有多少钱
int money=super.getMoney();
//加法,并且重新设置回去
super.setMoney(money+delta);
}
}
*/