Escolar Documentos
Profissional Documentos
Cultura Documentos
EXERCÍCIO 1
1. A taxa de juros variável da instância deve ser declarada como estática? Explicar.
Responder:
Não, a taxa de juros pode mudar de acordo com a caderneta de poupança.
Responder:
Conta Poupança: saldo $115.0, taxa de juros 0.15
EXERCÍCIO 2
Responder:
A seguir demonstram a substituição:
1) depósito()
2) retirar()
3) toString()
Responder:
Sim, CheckingAccount estende BankAccount por isso é legal ter uma variável BankAccount referenciando um
objeto CheckingAccount.
Responder:
Não, não é legal ter uma variável de classe filho referenciando um objeto de classe pai.
6. Em quais variáveis bacc1, chacc1, sacc1 a invocação para método deduzirFees() foi válida? Explicar.
Responder:
Válido apenas para chacc1, pois CheckingAccount é a única classe que tem o método public void deductFees().
7. Qual(is) erro(s) de compilação pode(m) ser corrigido(s) por meio de casting? Qual(is) não(s) poderia(m) ser
corrigido(s)? Por que?
Responder:
bacc1 pode ser convertido como um CheckingAccount para corrigir o erro de compilação. Isso ocorre porque
CheckingAccount se estende de BankAcount e bacc1 é uma variável da classe pai.
8. O programa é executado depois de excluir a linha que causa o erro de compilação? Se o programa travou,
por que ele travou?
Responder:
O programa falha devido a tipos incompatíveis: SavingsAccount não pode ser convertido em CheckingAccount.
9. Qual foi o erro de tempo de execução obtido ao alterar super.deposit(amount) para deposit(amount) na
classe CheckingAccount.java?
Responder:
O erro foi: "classe BankAccount não pode ser convertida para classe CheckingAccount (BankAccount e
CheckingAccount estão no módulo sem nome do carregador 'app') em TestBankAccounts.main"
Responder:
Duas vezes?
EXERCÍCIO 3
11. Por que o compilador emite uma mensagem de erro ao invocar newAcc.getTransactionCount()?
Por que o compilador emite uma mensagem de erro ao invocar newAcc.getInterestRate()?
Responder:
Os métodos getter referenciados não existem em BankAccount.java.
Responder:
Não, tanto SavingsAccount.java quanto CheckingAccount.java têm métodos toString().
Não há como discernir qual deles está sendo chamado de BankMachine.