一、目标导读
群主发普通红包。某群有很多成员,群主给成员发红包,规则如下:
1. 群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取。
2. 成员领取红包后,保存到成员余额中。
二、案例分析
三、 直接上代码
1、定义Uer
public class User {
private String name;
private double balance;
public User() {
}
public User(String name, double balance) {
this.name = name;
this.balance = balance;
}
public void show(){
System.out.println("用户名:"+name+",余额为:"+balance);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
}
2、定义群主类
import java.util.ArrayList;
public class QunZhu extends User{
public QunZhu(){
}
public QunZhu(String name,Double balance){
super(name,balance);
}
public ArrayList<Double> send(double money,int count){
double balance = getBalance();
if (money>balance){
return null;
}
//修改群主余额
setBalance(balance-money);
//创建集合,保存金额
ArrayList<Double> arrayList=new ArrayList<>();
//单位换算
int zonghe=(int)(money*100);
//正常情况下每份金额
int m=zonghe/count;
//不为整数时
int n=zonghe%count;
//遍历
for (int i = 0; i < count-1 ; i++) {
arrayList.add(m/100.0);
}
if (n==0){
arrayList.add(m/100.0);
}else{
arrayList.add((m+n)/100.0);
}
return arrayList;
}
}
3、定义群成员类
import java.util.ArrayList;
import java.util.Random;
public class ChengYuan extends User {
public ChengYuan(String name, double balance) {
super(name, balance);
}
public void QiangHongBao(ArrayList<Double> hongbao){
Random random=new Random();
int i = random.nextInt(hongbao.size());
setBalance(getBalance()+hongbao.get(i));
hongbao.remove(i);
}
}
4、定义测试类
import java.util.ArrayList;
public class HongBaoTest {
public static void main(String[] args) {
QunZhu qunZhu=new QunZhu("demo",100.0);
ArrayList<Double> list = qunZhu.send(11.12, 3);
ChengYuan chengYuan1=new ChengYuan("a1",15.0);
ChengYuan chengYuan2=new ChengYuan("a2",15.0);
ChengYuan chengYuan3=new ChengYuan("a3",15.0);
chengYuan1.QiangHongBao(list);
chengYuan2.QiangHongBao(list);
chengYuan3.QiangHongBao(list);
chengYuan1.show();
chengYuan2.show();
chengYuan3.show();
}
}
四、最后查看运行结果
五、总结
该功能主要是以继承为主的基本测试题,最重要的是搞好需求分析,了解继承的含义和运用方法