发红包的简单实现
1.定义一个父类PublicSpace其中含有 私有属性name yue(账户余额)有参和无参构造提供getter和setter方法 以及含有show()方法来输出账户的的信息
2.定义一个manager的子类作为群主的类,其继承父类的属性并且有自己的发红包的方法
3.定义一个Son的子类作为收红包的白嫖党的类,其继承父类的属性并且有自己的发红包的方法
父类PublicSpace
public class PublicSpace {
private String name;
private double yue;
public PublicSpace() {}
public PublicSpace(String name, double yue) {
super();
this.name = name;
this.yue = yue;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getYue() {
return yue;
}
public void setYue(double yue) {
this.yue = yue;
}
public void show() {
System.out.println("我是"+name+"、我的钱包余额为:"+yue);
}
群主子类manager
import java.util.ArrayList;
//继承父类
public class Manager extends PublicSpace {
public Manager() {}//无参构造
//有参的构造
public Manager(String name, double yue) {
super(name,yue);
}
//定义群主发红包的方法 传入红包大小和划分个数的参数
public ArrayList<Double> send(int totalmoney,int count){
//实力化一个集合来存储随机划分的若干个红包,然后返回这个集合
ArrayList<Double> list=new ArrayList<Double>();
//先调用父类的getyue()来查看群主的钱包余额,以判断够不够发红包
double yue=super.getYue();
if(yue<totalmoney) {
System.out.println("钱不够发红包了");
System.out.println("测试list是否为 0-----:"+list.size());
//钱不够 返回空的集合
return list;
}else {
// double s=yue-totalmoney;
// 重新设置剩余的钱
super.setYue(yue-totalmoney);
//分钱 如果有剩余放入第三份中
double money=totalmoney / count;
double mon=totalmoney % count;
//循环将正常的红包放入集合
for(int x=0;x<count-1;x++) {
list.add(money);
}
//最后一份红包加入了剩余的钱放入集合
list.add(money+mon);
}
return list;
}
收红包子类son
import java.util.ArrayList;
import java.util.Random;
public class Son extends PublicSpace{
public Son() {}//构造方法
public Son(String name, double yue) {
super(name, yue);
}
//收红包的方法
public void receive(ArrayList<Double> list) {
if(list.size()==0) {
// System.out.println("群主穷逼,钱不够发红包");
return;
}
//随机生成一个数 将这个数作为集合的脚标来抽取红包
int s=new Random().nextInt(list.size());
//从集合中删除一个元素 并返回被删除的元素
double c=list.remove(s);
//重新对用户的余额进行更改
double q=super.getYue();
super.setYue(q+c);
}
测试类Test
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Manager m=new Manager("陈一发", 510.0);
Son s1=new Son("迪丽热巴", 0);
Son s2=new Son("张三", 0);
Son s3=new Son("李四", 0);
Son s4=new Son("王五", 0);
Son s5=new Son("尼古拉斯", 0);
//发红包
ArrayList<Double> list=m.send(511, 5);
//收红包
s1.receive(list);
s2.receive(list);
s3.receive(list);
s4.receive(list);
s5.receive(list);
//显示每个人的余额
m.show();
s1.show();
s2.show();
s3.show();
s4.show();
s5.show();
}