Herança orientada a objetos (intermediária) de classes experimentais, super

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

 

Acho que você gosta

Origin blog.csdn.net/qq_41048982/article/details/109359500
Recomendado
Clasificación