1.
Escreva uma
conta simulada chamada
Conta
. As propriedades e métodos desta classe são mostrados na figura abaixo. Os atributos incluídos nesta classe:
ID da
conta
, saldo de
saldo
, taxa de juros anual
AnnualInterestRate
; métodos incluídos: métodos de acesso (
getter
e
método
setter ), método de retorno de taxa de juros mensal
getMonthlyInterest ()
, método de
saque retirado ()
, método de depósito
depósito ()
。
Escreva um programa de usuário para testar a
classe
Conta
. No programa do usuário, crie um número de conta
1122
, um saldo de
20.000
,
Taxa
de
juros anual de 4,5%
do
objeto
Conta
. Utilizar a
retirar
método para retirar
30.000
yuan e imprimir o equilíbrio.
Em seguida, use a
retirar
método para retirar
2.500
yuan, use o
depósito
método para depositar
3000
yuan, e, em seguida, imprimir o equilíbrio e mensal interesse
taxa.
2.
Crie
uma subclasse da classe
Conta
,
CheckAccount, que
representa uma conta a descoberto, e um atributo é definido na conta
cheque especial
significa limite de cheque especial.
Substitua o método de retirada na classe
CheckAccount
, o algoritmo é o seguinte:
Se (valor de retirada
<
saldo da conta),
Pode retirar diretamente
Se (valor de retirada
>
saldo da conta),
Calcule a quantidade de descoberto necessário
Determine se o
cheque especial
é suficiente para cobrir a necessidade de saque a descoberto, se for o caso
Modifique o saldo da conta para
0
para reduzir o valor do cheque especial
se não for possível
Solicita ao usuário que exceda o limite de cheque especial
Requisitos:
Escreva um programa de usuário para testar a
classe
CheckAccount
. No programa do usuário, crie uma conta como
1122
, Yu
Objeto CheckAccount com um montante de
20.000
, uma taxa de juros anual de
4,5%
e um limite de saque a descoberto de
5.000
yuan
.
Utilizar a
retirar
método para retirar
5.000
yuan, e imprimir o saldo da conta e cheque especial.
Em seguida, use a
retirar
método para retirar
18.000
yuan, e imprimir o saldo da conta eo montante descoberto.
Em seguida, use a
retirar
método para retirar
3.000
yuan, e imprimir o saldo da conta e cheque especial.
pronto:
(
1
)
O método de construção da subclasse
CheckAccount
requer todos os
três
atributos herdados da classe pai
e os próprios atributos da subclasse.
Inicialização do departamento.
(
2
)
O atributo equilíbrio da classe pai
conta
está definido para privado , mas na retirar da classe filha CheckAccount
O método precisa modificar seu valor, portanto, o
atributo
balance
da
classe pai deve ser modificado e definido como
protegido
.
responda:
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