发红包小案例-小白学习中

根据继承的学习,现在进行一个小案例:

//创建一个用户类
public class llid {
public String name;//用户名
public int yuan;//现有金额
public llid(){
}
public llid(String name, int yuan) {
this.name = name;
this.yuan = yuan;
}//构造方法
public void show(){
System.out.println(“用户名:”+name);
System.out.println(“当前余额:”+yuan);
}//展示信息
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getYuan() {
return yuan;
}
public void setYuan(int yuan) {
this.yuan = yuan;
}
}

import java.util.ArrayList;
//创建一个群主类,父类为用户类
public class llquzhu extends llid{
public llquzhu(){
}
public llquzhu(String name,int yuan){
super(name,yuan);
}//构造方法,直接创建起始信息
public ArrayList send(int howyuan,int count){
ArrayList a=new ArrayList<>();//设置一个集合,用来装分配的钱
int yue=super.getYuan();//获得群主金额
if(howyuan>yue) {
System.out.println(“余额不足”);
return a;
}//如果发红包的金额大于群主的余额,则返回“余额不足”的信息
super.setYuan(yue-howyuan);//设置群主当前余额为:以前的余额-发红包的金额
int fen=howyuan/count;//设置每一个红包的平均金额
int yu=howyuan%count;//得到零头
for (int i = 0; i < count-1; i++) {
a.add(fen);//把钱装红包里
}//给红包个数-1个红包每一个都装fen
int last=fen+yu;//给最后一个红包装fen+yu
a.add(last);//把钱装红包里
return a;//返回集合
}//howyuan为红包总金额,count为包几个红包
}

import java.util.ArrayList;
import java.util.Random;
//创建一个群成员类,父类为用户类
public class llchengyuan extends llid{
public llchengyuan(){
}
public llchengyuan(String name,int yuan){
super(name,yuan);
}//构造方法,直接创建起始信息
public void shou(ArrayList a){
int b=new Random().nextInt(a.size());//从0到a.size-1里面随机选一个数b
int money=a.remove(b);//从集合a中获得第b+1个红包
int yuan=super.yuan;//获得群成员金额
super.setYuan(yuan+money);//设置群成员当前余额为:之前的余额+红包中的金额
}
}

import java.util.ArrayList;
//创建一个执行类
public class llhongbao {
public static void main(String[] args) {
llquzhu a=new llquzhu(“群主”,100);
llchengyuan one=new llchengyuan(“成员A”,0);
llchengyuan two=new llchengyuan(“成员B”,0);
llchengyuan three=new llchengyuan(“成员C”,0);
a.show();
one.show();
two.show();
three.show();
ArrayList fa=a.send(20,3);
one.shou(fa);
two.shou(fa);
three.shou(fa);
System.out.println(“发红包后:”);
a.show();
one.show();
two.show();
three.show();
}
}

结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值