【java】信用卡账户的设计与实现

【案例介绍】

  1. 任务描述
    设计实现一个统一透支限额的信用卡账户类(CreditCard)和一个用于测试的演示类 (CreditCardDemo)。在演示类中创建信用卡对象进行测试。
    信用卡与普通银行账户的最大区别是允许透支。如果用户取款时,如果 (取款金额
    ⩽账户余额+透支限额),则可以正常取款,否则取款失败。
    在这里为了避免把问题弄的复杂,我们要求实现一个简单的信用卡账户类,账户有
    姓名、余额(可正可负,负数如-1000 表示已经透支了 1000 元)和最大透支限额(⩾0)
    信息。
    要求这两个类都放在 cn.edu.gpnu.bank 包中。

【案例目标】
 学会分析“信用卡账户的设计与实现”任务实现的逻辑思路。
 能够独立完成“信用卡账户的设计与实现”程序的源代码编写、编译以及运行。
 掌握静态属性、静态方法的编写与使用。  掌握 Java 中的构造方法、setter 方法、getter 方法的知识点。
【案例思路】
根据任务描述和运行图,我们可以确定信用卡账户类的属性和方法。
在这里插入图片描述
【运行代码】

1. CreditCard 类

package practice.bank;

public class CreditCard {
    
    
    public String name;
    public double balance;
    public double amount;
    static double maxOverdraft;

    public CreditCard(String name, double balance, double amount) {
    
    
        this.name = name;
        this.balance = balance;
        this.amount = amount;
    }

    public CreditCard() {
    
    

    }

    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;
    }

    public double getAmount() {
    
    
        return amount;
    }

    public void setAmount(double amount) {
    
    
        this.amount = amount;
    }

    static {
    
    
        maxOverdraft=3000;
    }

    public void deposit(double amount) {
    
    
        balance = amount;
    }

    public boolean withdraw(double amount) {
    
    
        if (amount <= balance + maxOverdraft) {
    
    
            System.out.println("取出" + amount + "元" + "成功!");
            System.out.println("账户信息" + "姓名:" + this.name+
                    ",余额:" + this.balance+ ",最大透支额:" + maxOverdraft);
            return true;
        }
            else{
    
    
                System.out.println("余额不足,取款"+amount+"元"+"失败!");
                return  false;
            }
    }

    public String info() {
    
    
        return"账户信息"+"姓名" + this.name +
                ", 余额" + this.balance+
                ", 最大透支额" + maxOverdraft;
    }
}

2.CreditCardDemo类

package practice.bank;

public class CreditCardDemo {
    
    
    public static void main(String[] args){
    
    

        CreditCard creditCard = new CreditCard();
        creditCard.setName("张三");
        System.out.println(creditCard.info());

        System.out.println("**测试1:从信用卡取出5000元。");
        creditCard.withdraw(5000);

        System.out.println("**测试2:往信用卡存2000元。");
        creditCard.deposit(2000);
        System.out.println(creditCard.info());

        System.out.println("**测试3:再从信用卡取出5000元。");
        creditCard.withdraw(5000);

    }
}

【运行结果】
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_52703008/article/details/126200647
今日推荐