首页 / JAVA / Java继承的综合案例
Java继承的综合案例
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java继承的综合案例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3400字,纯文字阅读大概需要5分钟。
内容图文
![Java继承的综合案例](/upload/InfoBanner/zyjiaocheng/591/55c8dadeae394fefaea19f778d99788b.jpg)
文章目录
继承的综合案例
项目链接
https://download.csdn.net/download/weixin_45525272/17416073
1.1 综合案例:群主发普通红包
群主发普通红包。某群有多名成员,群主给成员发普通红包。普通红包的规则:
- 群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取。
- 成员领取红包后,保存到成员余额中。
请根据描述,完成案例中所有类的定义以及指定类之间的继承关系,并完成发红包的操作。
1.2 案例分析
根据描述分析,得出如下继承体系:
1.3 案例实现
定义用户类:
public class User {
// 成员变量
private String username;
private double leftMoney;
// 用户名
// 余额
// 构造方法
public User() { }
public User(String username, double leftMoney) {
this.username = username;
this.leftMoney = leftMoney;
}
// get/set方法
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public double getLeftMoney() {
return leftMoney;
}
public void setLeftMoney(double leftMoney) {
this.leftMoney = leftMoney;
}
// 展示信息的方法
public void show() {
System.out.println("用户名:"+ username +" , 余额为:" + leftMoney + "元");
}
}
定义群主类:
public class QunZhu extends User {
// 添加构造方法
public QunZhu() {
}
public QunZhu(String username, double leftMoney) {
// 通过super 调用父类构造方法
super(username, leftMoney);
}
/*
群主发红包,就是把一个整数的金额,分层若干等份。
1.获取群主余额,是否够发红包.
不能则返回null,并提示.
能则继续.
2.修改群主余额.
3.拆分红包.
3.1.如果能整除,那么就平均分。
3.2.如果不能整除,那么就把余数分给最后一份。
*/
public ArrayList<Double> send(int money, int count) {
// 获取群主余额
double leftMoney = getLeftMoney();
if(money > leftMoney) {
return null;
}
// 修改群主余额的
setLeftMoney(leftMoney ‐ money);
// 创建一个集合,保存等份金额
ArrayList<Double> list = new ArrayList<>();
// 扩大100倍,相当于折算成'分'为单位,避免小数运算损失精度的问题
money = money * 100;
// 每份的金额
int m = money / count;
// 不能整除的余数
int l = money % count;
// 无论是否整除,n‐1份,都是每份的等额金额
for (int i = 0; i < count ‐ 1; i++) {
// 缩小100倍,折算成 '元'
list.add(m / 100.0);
}
// 判断是否整除
if (l == 0) {
// 能整除, 最后一份金额,与之前每份金额一致
list.add(m / 100.0);
} else {
// 不能整除, 最后一份的金额,是之前每份金额+余数金额
list.add((m + l) / 100.00);
}
// 返回集合
return list;
}
}
定义成员类:
public class Member extends User {
public Member() {
}
public Member(String username, double leftMoney) {
super(username, leftMoney);
}
// 打开红包,就是从集合中,随机取出一份,保存到自己的余额中
public void openHongbao(ArrayList<Double> list) {
// 创建Random对象
Random r = new Random();
// 随机生成一个角标
int index = r.nextInt(list.size());
// 移除一个金额
Double money = list.remove(index);
// 直接调用父类方法,设置到余额
setLeftMoney( money );
}
}
定义测试类:
public class Test {
public static void main(String[] args) {
// 创建一个群主对象
QunZhu qz = new QunZhu("群主" , 200);
// 创建一个键盘录入
Scanner sc = new Scanner();
System.out.println("请输入金额:");
int money = sc.nextInt();
System.out.println("请输入个数:");
int count = sc.nextInt();
// 发送红包
ArrayList<Double> sendList = s.send(money,count);
// 判断,如果余额不足
if(sendList == null){
System.out.println(" 余额不足...");
return;
}
// 创建三个成员
Member m = new Member();
Member m2 = new Member();
Member m3 = new Member();
// 打开红包
m.openHongbao(sendList);
m2.openHongbao(sendList);
m3.openHongbao(sendList);
// 展示信息
qz.show();
m.show();
m2.show();
m3.show();
}
}
内容总结
以上是互联网集市为您收集整理的Java继承的综合案例全部内容,希望文章能够帮你解决Java继承的综合案例所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。