1.
Escriba una
cuenta simulada llamada
Cuenta
. Las propiedades y métodos de esta clase se muestran en la siguiente figura. Los atributos incluidos en esta clase:
Cuenta
ID
, el balance de
equilibrio
, la tasa de interés anual
tasaInteresAnual
; métodos incluyen: métodos de acceso (
captador
y
colocador
método), el retorno mensual método de tasa de interés
getMonthlyInterest ()
, método de retiro
retirar ()
, método de depósito
depósito ()
。
Escriba un programa de usuario para probar la
clase
Account
. En el programa de usuario, cree un número de cuenta
1122
, un saldo de
20000
,
Tasa
de
interés anual del 4,5%
del
objeto de la
Cuenta
. Usar la
retirada
método para retirar
30.000
yuanes e imprimir el equilibrio.
A continuación, utilice la
retirada
método para retirar
2.500
yuanes, utilice el
depósito
método para depositar
3.000
yuanes, y luego imprimir el equilibrio y el interés mensual
Velocidad.
2.
Cree
una subclase de la clase de
cuenta
,
CheckAccount, que
representa una cuenta sobregirable, y se define un atributo en la cuenta.
sobregiro
significa límite de sobregiro.
Anule el método de retiro en la clase
CheckAccount
, el algoritmo es el siguiente:
Si (monto del retiro
<
saldo de la cuenta),
Puede retirar directamente
Si (monto del retiro
>
saldo de la cuenta),
Calcule la cantidad de sobregiro
Determine si el
sobregiro
es suficiente para cubrir la necesidad de sobregiro, si es así
Modifique el saldo de la cuenta a
0
para reducir el monto del sobregiro
si no es posible
Indicar al usuario que supere el límite de sobregiro
Requisitos:
escriba un programa de usuario para probar la
clase
CheckAccount
. En el programa de usuario, cree una cuenta como
1122
, Yu
Objeto CheckAccount con una cantidad de
20.000
, una tasa de interés anual del
4,5%
y un límite de descubierto de
5.000
yuanes
.
Usar la
retirada
método para retirar
5.000
yuanes, e imprimir el saldo de la cuenta y el sobregiro.
A continuación, utilice la
retirada
método para retirar
18.000
yuanes, e imprimir el saldo de la cuenta y la cantidad de sobregiro.
A continuación, utilice la
retirada
método para retirar
3.000
yuanes, e imprimir el saldo de la cuenta y el sobregiro.
rápido:
(
1
)
El método de construcción de la subclase
CheckAccount
necesita heredar los
tres
atributos de la clase principal
y los atributos propios de la subclase.
Inicialización del departamento.
(
2
)
El saldo del atributo de la
cuenta
de la clase principal se establece en privado , pero en el retiro de la clase secundaria CheckAccount
El método necesita modificar su valor, por lo que el
atributo de
balance
de la
clase padre debe modificarse y definirse como
protegido
.
responder:
import java.util.Scanner;
public class Customer {
private String firstName;
private String lastName;
private Account account;
public Customer(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public Account getAccount() {
return account;
}
public void setAccount(Account account) {
this.account = account;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
Customer c=new Customer("Jane","Smith");
c.account=new CheckAccount(1122,20000,0.045,5000);
c.account.withdraw(5000);
c.account.withdraw(18000);
c.account.withdraw(3000);
}
}
class CheckAccount extends Account{
private int overdraft;
public CheckAccount(int id, double balance, double annualInterestRate,int overdraft) {
super(id, balance, annualInterestRate);
this.overdraft = overdraft;
}
public void withdraw(double amount){
if (balance-amount<=0){
if (amount-balance<overdraft){
overdraft-=(amount-balance);
balance=0;
System.out.println("取款"+amount+"成功!");
System.out.println("余额:"+balance);
System.out.println("可透支额度:"+overdraft);
System.out.println();
}
else {
System.out.println("取款"+amount+"失败!");
System.out.println("超过可透支额度!");
System.out.println("余额:"+balance);
System.out.println("可透支额度:"+overdraft);
System.out.println();
}
}
else {
balance-=amount;
System.out.println("取款"+amount+"成功!");
System.out.println("余额为:"+balance);
System.out.println("可透支额度:"+overdraft);
System.out.println();
}
}
}
class Account {
protected int id;
protected double balance;
protected double annualInterestRate;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public double getAnnualInterestRate() {
return annualInterestRate;
}
public void setAnnualInterestRate(double annualInterestRate) {
this.annualInterestRate = annualInterestRate;
}
public Account(){}
public Account(int id, double balance, double annualInterestRate) {
this.id = id;
this.balance = balance;
this.annualInterestRate = annualInterestRate;
}
public void withdraw (double amount){
if (balance-amount<0){
System.out.println("余额不足!取款失败!");
System.out.println("余额为:"+balance);
}
else {
balance-=amount;
System.out.println("取款"+amount+"成功!");
System.out.println("余额为:"+balance);
}
}
public void deposit (double amount){
balance+=amount;
System.out.println("存款"+amount+"成功!");
System.out.println("余额为:"+balance);
}
}
取款5000.0成功!
余额为:15000.0
可透支额度:5000
取款18000.0成功!
余额:0.0
可透支额度:2000
取款3000.0失败!
超过可透支额度!
余额:0.0
可透支额度:2000