Java继承案例:群主发红包

    技术2025-10-15  2

    package redpackeg; public class User { private String name; private double balance; public User() { } public User(String name, double balance) { this.name = name; this.balance = 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; } @Override public String toString() { return "我是" + name + '\'' + ",余额:" + balance; } } package redpackeg; import java.util.ArrayList; public class Lord extends User{ public Lord(String name, double balance) { super(name, balance); } //发红包的函数 public ArrayList<Double> sendRedPackeg(double money, int count){ // 实例化一个存储红包的list ArrayList<Double> redlist = new ArrayList<>(); // 获取群主的余额数量 double LeftMoney = super.getBalance(); // 判断群主的余额是否大于红包金额,超过红包金额则不能发红包 if (LeftMoney < money){ System.out.println("余额不足!"); return redlist; } super.setBalance(LeftMoney-money); // 红包金额 double avg = money / count; // 将红包一个一个装进数组 for (int i = 0; i < count; i++) { redlist.add(avg); } return redlist; } } package redpackeg; import java.util.ArrayList; import java.util.Random; public class Member extends User{ public Member(String name, double balance) { super(name, balance); } // 成员收红包函数 public void receive(ArrayList<Double> list){ // 获取随机数,来决定取红包数组中的哪个红包 int index = new Random().nextInt(list.size()); double redMoney = list.remove(index); double leftMoney = super.getBalance(); super.setBalance(leftMoney+redMoney); } } package redpackeg; import java.util.ArrayList; public class Main2 { public static void main(String[] args) { // 红包数组 ArrayList<Double> redList = new ArrayList<>(); // 实例化各个对象 Lord lord = new Lord("群主", 100.0); Member one = new Member("成员A", 10.0); Member two = new Member("成员B", 15.0); Member three = new Member("成员C", 14.0); System.out.println(lord.toString()); System.out.println( one.toString()); System.out.println(two.toString()); System.out.println(three.toString()); // 发红包 redList = lord.sendRedPackeg(23.0, 3); one.receive(redList); two.receive(redList); three.receive(redList); System.out.println(lord.toString()); System.out.println(one.toString()); System.out.println(two.toString()); System.out.println(three.toString()); } }
    Processed: 0.011, SQL: 9