【案例介绍】
- 任务描述
设计实现一个统一透支限额的信用卡账户类(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);
}
}
【运行结果】