ATM系统设计

ATM系统设计(完整代码及演示见文末)

技术选型分析

在这里插入图片描述

账户类、首页实现

在这里插入图片描述
分析:

  • 我们需要定义一个账户对象,账户对象属性设置为私有属性,属性为:卡号,用户名,取现额度,密码

代码演示:

package ATM;

public class Account {
    private String cardid; // 卡号
    private String username; // 客户名称
    private double money; // 金额
    private double quotaMiney; // 当次提现额度
    private String password; //

    public Account() {
    }

    public Account(String cardid,String username, double quotaMiney, String password) {
        this.cardid = cardid;
        this.username = username;
        this.quotaMiney = quotaMiney;
        this.password = password;
    }

    public String getCardid() {
        return cardid;
    }

    public void setCardid(String cardid) {
        this.cardid = cardid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        this.money = money;
    }

    public double getQuotaMiney() {
        return quotaMiney;
    }

    public void setQuotaMiney(double quotaMiney) {
        this.quotaMiney = quotaMiney;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
  • 紧接着我们需要定义一个集合用于存储对象
  • 展示主页登录界面,考虑后期会不断应用,我们将其封装成为功能。
    局部代码:
public class ATMSystem {
    public static void main(String[] args) {
        // 每个用户一个账户对象,需要设计账户类,账户类至少包含(卡号、用户名、余额、取现额度、密码)

        // 需要定义一个ArrayList的集合用于存储账户对象。
        ArrayList<Account> accounts = new ArrayList<>();

        // 需要展示欢迎页包含2个功能:注册开户、登录账户。
        Scanner sc = new Scanner(System.in);

        // 展示功能,准备系统的首页,登录,开户
        showmain(accounts,sc);

        }

局部代码:

  • 因为我们设计的是登录的界面,登录界面的功能有两种,一种是登录,一种是开户,我们需要先开户再登录。
  • 为了与用户有更好的交互,我们需要定义一个扫描器进行交互,承接类型为整型,再接收完指令后我们需要对用户输入的指令进行判断以识别出究竟是哪种指令,是登录还是开户。然后再设计不同的功能。
  • 登录界面功能的输入,第一个是集合容器,说白了就是每个用户信息都存放再这个集合中,第二个是扫描器,这样的好处在于可以不用重复定义扫描器。
public static void showmain(ArrayList<Account> accounts,Scanner sc){
        while (true) {
            System.out.println("请输入您想进行的操作:");
            System.out.println("1、登录");
            System.out.println("2、开户");
            System.out.println("3、退出");
            System.out.println("请输入您的命令:");
            int command = sc.nextInt();
            switch (command){
                case 1:
                    // 登录
                    login(accounts,sc);
                    break;
                case 2:
                    // 开户
                    register1(accounts,sc);
                    break;
                case 3:
                    //  退出
                    return;
                default:
                    System.out.println("您的指令不存在。");
            }
        }
    }

总结:
在这里插入图片描述

用户开户功能实现

在这里插入图片描述
代码主逻辑:

  1. 我们需要将用户注册功能独立成单独的方法,我们需要考虑,方法传入的变量是啥,我们注册是要存放入单一的集合中的,所以我们第一个变量应该优先选择总的集合账户类,后面可能会有用户输入的交互所以扫描器也需要传入。
  2. 首先我们需要让用户输入他的账户名。
  3. 紧接着我们需要让用户设置当日提现额度。
  4. 然后我们需要让用户设置开户密码。
  5. 再用户输入这些信息后,系统生成8为随机的卡号。
  6. 判断卡号是否重复如果重复就重新生成不重复的,所以需要使用while循环控制。
  7. 再生成了卡号,姓名,提现额度等信息后,我们创建一个个人账户对象,将这些信息装入个人账户对象。
  8. 最后再将其添加到总的集合列表中。
/*
    * 用户的开户功能
    * */
    private static void register1(ArrayList<Account> accounts,Scanner sc) {
        System.out.println("===================用户开户功能=====================");
        // 开户名称
        System.out.println("请你输入开户名称:");
        String name = sc.next();
        // 提现额度
        System.out.println("请您输入提现额度:");
        double qutomoney = sc.nextDouble();

        // 开户密码
        String password = "";
        while (true) {
            System.out.println("请您输入开户密码:");
            password = sc.next();

            System.out.println("请您确认开户密码:");
            String OKpassword = sc.next();

            if (OKpassword.equals(password)){
                break;
            }else {
                System.out.println("两次密码不一致");
            }
        }

        // 生成开户的卡号,卡号8位数,同时不能与其他卡号重复
        String cardId = createCardId(accounts);

        // 创建一个账户对象封装账户的信息
        Account account = new Account(cardId,name,qutomoney,password);

        // 把账户对象添加到集合中
        accounts.add(account);
        System.out.println("恭喜您开户成功,您的卡号是:"+account.getCardid());

    }

卡号生成逻辑:

  1. 建立一个空字符串,用随机数的方法生成0–9之间的数,并将其添加到空字符串中。
  2. 生成了8位卡号,将其传入总的集合列表中,遍历列表观察是否有重复的卡号,有的话就重新生成。
    部分代码:
 public static String createCardId(ArrayList<Account> accounts){
        String CardId = "";
        Random r = new Random();
        while (true) {
            for (int i = 0; i < 8; i++) {
                CardId += r.nextInt(10);
            }
            // 判断卡号是否重复了。
            Account ACC = getAccountBycardId(CardId,accounts);

            if (ACC == null){
                return CardId;
            }
        }
    }

部分代码:

public static Account getAccountBycardId(String Cardid,ArrayList<Account> accounts) {
        // 根据卡号查询账户对象
        for (int i = 0; i < accounts.size(); i++) {
           Account account = accounts.get(i);
           if (account.getCardid().equals(Cardid)){
               return account;
           }

        }
        return null; // 查无此账户说明这个可以使用没有重复。

    }

总结:
在这里插入图片描述

用户登录功能实现

在这里插入图片描述
代码逻辑:

  1. 首先我们知道这个功能肯定是要独立成方法的,那么方法需要传入的参数是哪些?因为登录功能,我们需要通过我们的卡号找到总的集合容器中的用户,所以我们需要将整的集合给传入,其次,我们需要定义一个扫描器以便于交互。
  2. 我们首先需要判断系统中有没有用户,就是总的集合中有没有人注册,如果没有人注册就提示一下然后给return一下。
  3. 然后提示输入卡号,我们通过卡号找到对象。
  4. 对象找到后,我们需要提示输入登录密码,密码错误需要提示并要求重新输入,密码正确既可以进入系统。
  5. 展示系统的界面,界面功能有:查询账户,存款,取款,转账,修改密码,退出,销户。

部分代码:

private static void login(ArrayList<Account>accounts,Scanner sc) {
        System.out.println("===================用户登录============================");
        if (accounts.size() == 0){
            // 没有任何账户
            System.out.println("当前系统中没有任何账户,请先注册");
            return;
        }
        System.out.println("请输入您的卡号:");
        String cardid = sc.next();
        Account account = getAccountBycardId(cardid,accounts);

        if (account!=null){
            while (true) {
                System.out.println("请输入您的登录密码:");
                String password = sc.next();
                if (account.getPassword().equals(password)){
                    // 密码正确
                    System.out.println("恭喜您"+account.getUsername()+"先生/女士,成功进入系统,您的卡号是:"+account.getCardid());
                    // 展示操作界面
                    showusercommand(sc,account,accounts);
                    return;
                }else {
                    System.out.println("密码错误,请重新输入。");
                }
            }
        }else {
            System.out.println("卡号不存在。");
        }
    }

部分代码:

public static Account getAccountBycardId(String Cardid,ArrayList<Account> accounts) {
        // 根据卡号查询账户对象
        for (int i = 0; i < accounts.size(); i++) {
           Account account = accounts.get(i);
           if (account.getCardid().equals(Cardid)){
               return account;
           }

        }
        return null; // 查无此账户说明这个可以使用没有重复。

    }

总结:
在这里插入图片描述

用户操作页设计、查询账户、退出账户功能

在这里插入图片描述
代码逻辑:

  1. 用户登录进入登录界面,登录界面需要传入总的账户集合,以及扫描器。
  2. 用户通过扫描器输入指令后需要通过switch语句进行判断。

局部代码:

private static void showusercommand(Scanner sc,Account acc,ArrayList<Account>accounts) {
        System.out.println("====================用户操作界面=============================");
        while (true) {
            System.out.println("1、查询账户");
            System.out.println("2、存款");
            System.out.println("3、取款");
            System.out.println("4、转账");
            System.out.println("5、修改密码");
            System.out.println("6、退出");
            System.out.println("7、注销账户");
            System.out.println("请您输入操作指令:");

            int command = sc.nextInt();
            switch (command){
                case 1:
                    // 查询账户
                    showaccount(acc);
                    break;
                case 2:
                    // 存款
                    depositMoney(acc,sc);
                    break;
                case 3:
                    // 取款
                    drawMoney(acc,sc);
                    break;
                case 4:
                    // 转账
                    transfermoney(accounts,acc,sc);
                    break;
                case 5:
                    // 修改密码
                    updatepassword(acc,sc);
                    return;
                case 6:
                    System.out.println("欢迎下次光临!");
                    return; // 退出当前循环
                case 7:
                    // 销户
                    accounts.remove(acc);
                    System.out.println("销户成功!");
                    return;
                default:
                    System.out.println("您输入的指令有误");

            }
        }

    }

查询对象代码:

    private static void showaccount(Account account) {
        System.out.println("==============当前账户详情===================");
        System.out.println("卡号:"+account.getCardid());
        System.out.println("姓名:"+account.getUsername());
        System.out.println("金额:"+account.getMoney());
        System.out.println("当次限额:"+account.getQuotaMiney());

    }

用户存款取款功能

在这里插入图片描述
代码逻辑:

  1. 存款功能需要单独定义一个功能,传入的是整个账户集合以及扫描器。
  2. 对于集合账户调用set功能对其进行赋值

存款代码:

private static void depositMoney(Account acc, Scanner sc) {
        System.out.println("====================存款操作=============================");
        System.out.println("请输入您存款的金额:");
        double money = sc.nextDouble();
        // 直接将金额修改到账户对应的余额中去;
        acc.setMoney(acc.getMoney()+money);
        System.out.println("存款完成!");
        showaccount(acc);
    }

 private static void showaccount(Account account) {
        System.out.println("==============当前账户详情===================");
        System.out.println("卡号:"+account.getCardid());
        System.out.println("姓名:"+account.getUsername());
        System.out.println("金额:"+account.getMoney());
        System.out.println("当次限额:"+account.getQuotaMiney());

    }

取款逻辑:

  1. 取款代码逻辑需要加入一个判断,就是取款金额和总的金额相比是否大于,如果取款金额大于账户剩余的余额那么就提示并利用while循环重复输入,如果取款金额不大于的话就调用集合的set功能进行更改更改完后就退出,退出用return表示退出当前的功能。

取款代码:

private static void drawMoney(Account acc, Scanner sc) {
        System.out.println("====================取款操作==============================");
        if (acc.getMoney() > 100){
            System.out.println("请输入取款金额:");
            double money = sc.nextDouble();
            if (money > acc.getMoney()){
                System.out.println("您当日可以提取的最大金额为:"+acc.getMoney());
            }else {
                acc.setMoney(acc.getMoney() - money);
                System.out.println("取钱成功,账户余额为:"+acc.getMoney());
                showaccount(acc);
            }
        }else {
            System.out.println("账户余额不足100,请走人工。");
        }
    }

用户转账功能

在这里插入图片描述
代码逻辑:

  1. 转账操作前我们需要判断系统是否有其他用户;
  2. 转账操作前我们需要判断当前账户的余额是否大于0;
  3. 真正开始转账,我们转账的金额要小于当前账户剩余的金额,如果大于的话那么无法进行转账,如果小于的话才可以继续进行;
  4. 继续转账后,我们需要核对用户的姓名首字母,其中姓名的首字母需要利用java的拼接语句,用户输入第一个首字母后,需要判断用户是否通过第一个字母开头,如果真则可以转账,如果假则提示,其中判断以啥首字母开头可以调用java对于列表格式的startsWith。
  5. 然后就是调用集合的set功能更改即可。

转账代码:

private static void transfermoney(ArrayList<Account> accounts, Account acc, Scanner sc) {
        System.out.println("================转账操作===========================");
        if (accounts.size() < 2){
            System.out.println("系统无其他用户,无法进行转账操作。");
            return;
        }

        // 判断自己的对象是否有钱
        if (acc.getMoney() < 0){
            System.out.println("账户余额为0,无法进行转账。");
            return;
        }
        // 开始转账逻辑
        System.out.println("请输入对方账户的卡号:");
        String cardid = sc.next();
        Account account = getAccountBycardId(cardid,accounts);  // 这里的account是对方的类,acc是自己的类,注意别混淆
        if (account != null){
            // 进入姓名确认
            if (account.getCardid().equals(acc.getCardid())){
                System.out.println("无法给自己转账。");
            }else {
                // 确认对方的姓名
                String name = "*"+account.getUsername().substring(1);
                System.out.println("请您确认"+"["+name+"]"+"的姓。");
                String prename = sc.next();
                // 判断
                if (account.getUsername().startsWith(prename)){
                    // 开始转账
                    while (true) {
                        System.out.println("请输入转账金额:");
                        double money = sc.nextDouble();
                        // 对转账金额进行二度判断
                        if (money > acc.getMoney()){
                            System.out.println("对不起,您转账金额超过原账户余额,您最多可以转"+acc.getMoney());
                        }else {
                            // 真的可以进行转账了
                            acc.setMoney(acc.getMoney()-money);
                            account.setMoney(account.getMoney() + money);
                            System.out.println("您已成功向"+account.getUsername()+"成功转账"+money+"元");
                            showaccount(acc);
                            return;
                        }
                    }

                }else {
                    System.out.println("对不起,您输入的信息有误,请核对后再输入。");
                }
            }
        }else {
            System.out.println("查无此人。");
        }
    }

修改密码,销户功能

在这里插入图片描述
修改密码逻辑:

  • 修改密码主要逻辑就是传入自己的类,而不是总的类,然后通过输入之前的密码,新的密码,确认新密码,最后调用set语句对属性进行更改。

修改代码:

private static void updatepassword(Account acc, Scanner sc) {
        System.out.println("==================修改密码===========================");

        while (true) {
            System.out.println("请您输入正确的密码:");
            String password = sc.next();
            if (acc.getPassword().equals(password)){
                // 密码正确,输入新密码
                while (true) {
                    System.out.println("请您输入新密码:");
                    String newpassword = sc.next();
                    System.out.println("请您确认新密码:");
                    String Okpassword = sc.next();
                    if (newpassword.equals(Okpassword)){
                        acc.setPassword(newpassword);
                        return;
                    }else {
                        System.out.println("密码不一致请重新输入。");
                    }
                }

            }else {
                System.out.println("初始密码错误");
            }
        }
    }

销户逻辑:

  • 就是调用remove语句将总的集合中的类中删去自己的类。

完整代码

在这里插入图片描述

对象代码

package ATM;

public class Account {
    private String cardid; // 卡号
    private String username; // 客户名称
    private double money; // 金额
    private double quotaMiney; // 当次提现额度
    private String password; //

    public Account() {
    }

    public Account(String cardid,String username, double quotaMiney, String password) {
        this.cardid = cardid;
        this.username = username;
        this.quotaMiney = quotaMiney;
        this.password = password;
    }

    public String getCardid() {
        return cardid;
    }

    public void setCardid(String cardid) {
        this.cardid = cardid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        this.money = money;
    }

    public double getQuotaMiney() {
        return quotaMiney;
    }

    public void setQuotaMiney(double quotaMiney) {
        this.quotaMiney = quotaMiney;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

主程序代码

package ATM;

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class ATMSystem {
    public static void main(String[] args) {
        // 每个用户一个账户对象,需要设计账户类,账户类至少包含(卡号、用户名、余额、取现额度、密码)

        // 需要定义一个ArrayList的集合用于存储账户对象。
        ArrayList<Account> accounts = new ArrayList<>();

        // 需要展示欢迎页包含2个功能:注册开户、登录账户。
        Scanner sc = new Scanner(System.in);

        // 展示功能,准备系统的首页,登录,开户
        showmain(accounts,sc);

        }
    public static void showmain(ArrayList<Account> accounts,Scanner sc){
        while (true) {
            System.out.println("请输入您想进行的操作:");
            System.out.println("1、登录");
            System.out.println("2、开户");
            System.out.println("3、退出");
            System.out.println("请输入您的命令:");
            int command = sc.nextInt();
            switch (command){
                case 1:
                    // 登录
                    login(accounts,sc);
                    break;
                case 2:
                    // 开户
                    register1(accounts,sc);
                    break;
                case 3:
                    //  退出
                    return;
                default:
                    System.out.println("您的指令不存在。");
            }
        }
    }
    /*
    * 用户登录功能开发
    * */
    private static void login(ArrayList<Account>accounts,Scanner sc) {
        System.out.println("===================用户登录============================");
        if (accounts.size() == 0){
            // 没有任何账户
            System.out.println("当前系统中没有任何账户,请先注册");
            return;
        }
        System.out.println("请输入您的卡号:");
        String cardid = sc.next();
        Account account = getAccountBycardId(cardid,accounts);

        if (account!=null){
            while (true) {
                System.out.println("请输入您的登录密码:");
                String password = sc.next();
                if (account.getPassword().equals(password)){
                    // 密码正确
                    System.out.println("恭喜您"+account.getUsername()+"先生/女士,成功进入系统,您的卡号是:"+account.getCardid());
                    // 展示操作界面
                    showusercommand(sc,account,accounts);
                    return;
                }else {
                    System.out.println("密码错误,请重新输入。");
                }
            }
        }else {
            System.out.println("卡号不存在。");
        }
    }

    private static void showusercommand(Scanner sc,Account acc,ArrayList<Account>accounts) {
        System.out.println("====================用户操作界面=============================");
        while (true) {
            System.out.println("1、查询账户");
            System.out.println("2、存款");
            System.out.println("3、取款");
            System.out.println("4、转账");
            System.out.println("5、修改密码");
            System.out.println("6、退出");
            System.out.println("7、注销账户");
            System.out.println("请您输入操作指令:");

            int command = sc.nextInt();
            switch (command){
                case 1:
                    // 查询账户
                    showaccount(acc);
                    break;
                case 2:
                    // 存款
                    depositMoney(acc,sc);
                    break;
                case 3:
                    // 取款
                    drawMoney(acc,sc);
                    break;
                case 4:
                    // 转账
                    transfermoney(accounts,acc,sc);
                    break;
                case 5:
                    // 修改密码
                    updatepassword(acc,sc);
                    return;
                case 6:
                    System.out.println("欢迎下次光临!");
                    return; // 退出当前循环
                case 7:
                    // 销户
                    accounts.remove(acc);
                    System.out.println("销户成功!");
                    return;
                default:
                    System.out.println("您输入的指令有误");

            }
        }

    }

    private static void updatepassword(Account acc, Scanner sc) {
        System.out.println("==================修改密码===========================");

        while (true) {
            System.out.println("请您输入正确的密码:");
            String password = sc.next();
            if (acc.getPassword().equals(password)){
                // 密码正确,输入新密码
                while (true) {
                    System.out.println("请您输入新密码:");
                    String newpassword = sc.next();
                    System.out.println("请您确认新密码:");
                    String Okpassword = sc.next();
                    if (newpassword.equals(Okpassword)){
                        acc.setPassword(newpassword);
                        return;
                    }else {
                        System.out.println("密码不一致请重新输入。");
                    }
                }

            }else {
                System.out.println("初始密码错误");
            }
        }
    }

    private static void transfermoney(ArrayList<Account> accounts, Account acc, Scanner sc) {
        System.out.println("================转账操作===========================");
        if (accounts.size() < 2){
            System.out.println("系统无其他用户,无法进行转账操作。");
            return;
        }

        // 判断自己的对象是否有钱
        if (acc.getMoney() < 0){
            System.out.println("账户余额为0,无法进行转账。");
            return;
        }
        // 开始转账逻辑
        System.out.println("请输入对方账户的卡号:");
        String cardid = sc.next();
        Account account = getAccountBycardId(cardid,accounts);  // 这里的account是对方的类,acc是自己的类,注意别混淆
        if (account != null){
            // 进入姓名确认
            if (account.getCardid().equals(acc.getCardid())){
                System.out.println("无法给自己转账。");
            }else {
                // 确认对方的姓名
                String name = "*"+account.getUsername().substring(1);
                System.out.println("请您确认"+"["+name+"]"+"的姓。");
                String prename = sc.next();
                // 判断
                if (account.getUsername().startsWith(prename)){
                    // 开始转账
                    while (true) {
                        System.out.println("请输入转账金额:");
                        double money = sc.nextDouble();
                        // 对转账金额进行二度判断
                        if (money > acc.getMoney()){
                            System.out.println("对不起,您转账金额超过原账户余额,您最多可以转"+acc.getMoney());
                        }else {
                            // 真的可以进行转账了
                            acc.setMoney(acc.getMoney()-money);
                            account.setMoney(account.getMoney() + money);
                            System.out.println("您已成功向"+account.getUsername()+"成功转账"+money+"元");
                            showaccount(acc);
                            return;
                        }
                    }

                }else {
                    System.out.println("对不起,您输入的信息有误,请核对后再输入。");
                }
            }
        }else {
            System.out.println("查无此人。");
        }
    }

    private static void drawMoney(Account acc, Scanner sc) {
        System.out.println("====================取款操作==============================");
        if (acc.getMoney() > 100){
            System.out.println("请输入取款金额:");
            double money = sc.nextDouble();
            if (money > acc.getMoney()){
                System.out.println("您当日可以提取的最大金额为:"+acc.getMoney());
            }else {
                acc.setMoney(acc.getMoney() - money);
                System.out.println("取钱成功,账户余额为:"+acc.getMoney());
                showaccount(acc);
            }
        }else {
            System.out.println("账户余额不足100,请走人工。");
        }
    }

    private static void depositMoney(Account acc, Scanner sc) {
        System.out.println("====================存款操作=============================");
        System.out.println("请输入您存款的金额:");
        double money = sc.nextDouble();
        // 直接将金额修改到账户对应的余额中去;
        acc.setMoney(acc.getMoney()+money);
        System.out.println("存款完成!");
        showaccount(acc);
    }

    private static void showaccount(Account account) {
        System.out.println("==============当前账户详情===================");
        System.out.println("卡号:"+account.getCardid());
        System.out.println("姓名:"+account.getUsername());
        System.out.println("金额:"+account.getMoney());
        System.out.println("当次限额:"+account.getQuotaMiney());

    }

    /*
    * 用户的开户功能
    * */
    private static void register1(ArrayList<Account> accounts,Scanner sc) {
        System.out.println("===================用户开户功能=====================");
        // 开户名称
        System.out.println("请你输入开户名称:");
        String name = sc.next();
        // 提现额度
        System.out.println("请您输入提现额度:");
        double qutomoney = sc.nextDouble();

        // 开户密码
        String password = "";
        while (true) {
            System.out.println("请您输入开户密码:");
            password = sc.next();

            System.out.println("请您确认开户密码:");
            String OKpassword = sc.next();

            if (OKpassword.equals(password)){
                break;
            }else {
                System.out.println("两次密码不一致");
            }
        }

        // 生成开户的卡号,卡号8位数,同时不能与其他卡号重复
        String cardId = createCardId(accounts);

        // 创建一个账户对象封装账户的信息
        Account account = new Account(cardId,name,qutomoney,password);

        // 把账户对象添加到集合中
        accounts.add(account);
        System.out.println("恭喜您开户成功,您的卡号是:"+account.getCardid());

    }
    public static String createCardId(ArrayList<Account> accounts){
        String CardId = "";
        Random r = new Random();
        while (true) {
            for (int i = 0; i < 8; i++) {
                CardId += r.nextInt(10);
            }
            // 判断卡号是否重复了。
            Account ACC = getAccountBycardId(CardId,accounts);

            if (ACC == null){
                return CardId;
            }
        }
    }

    public static Account getAccountBycardId(String Cardid,ArrayList<Account> accounts) {
        // 根据卡号查询账户对象
        for (int i = 0; i < accounts.size(); i++) {
           Account account = accounts.get(i);
           if (account.getCardid().equals(Cardid)){
               return account;
           }

        }
        return null; // 查无此账户说明这个可以使用没有重复。

    }



}


操作演示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考

https://www.bilibili.com/video/BV1Cv411372m?p=91&t=3.0

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Peihj2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值