【Introducción del caso】
- Descripción de la tarea
: Diseñar e implementar una clase de cuenta de tarjeta de crédito (CreditCard) con un límite de sobregiro unificado y una clase de demostración (CreditCardDemo) para pruebas. Cree un objeto de tarjeta de crédito en la clase de demostración para probarlo.
La mayor diferencia entre una tarjeta de crédito y una cuenta bancaria normal es el sobregiro permitido. Si el usuario retira dinero, si (monto del retiro
⩽ saldo de la cuenta + límite de sobregiro), el retiro se puede realizar normalmente; de lo contrario, el retiro falla.
Para evitar complicar el problema aquí, necesitamos implementar una clase de cuenta de tarjeta de crédito simple, la cuenta tiene un
nombre y un saldo (puede ser positivo o negativo, un número negativo como -1000 significa que se han sobregirado 1000 yuanes). y la
información del límite máximo de sobregiro (0).
Se requiere que ambas clases se coloquen en el paquete cn.edu.gpnu.bank.
[Objetivos del Caso]
Aprender a analizar las ideas lógicas para realizar la tarea de "Diseño e Implementación de Cuentas de Tarjetas de Crédito".
Capaz de completar de forma independiente la redacción, compilación y operación del código fuente del programa "Diseño e implementación de cuentas de tarjetas de crédito".
Dominar la escritura y el uso de atributos estáticos y métodos estáticos. Domine los puntos de conocimiento de constructores, métodos de establecimiento y métodos de obtención en Java.
[Idea de caso]
Según la descripción de la tarea y el diagrama de ejecución, podemos determinar los atributos y métodos de la clase de cuenta de tarjeta de crédito.
【Ejecutar código】
1. Clase de tarjeta de crédito
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.Clase de demostración de tarjeta de crédito
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);
}
}
【resultado de la operación】