Sunteți pe pagina 1din 2

Răspunsuri pentru Lab 2

EXERCIȚIUL 1

1. Ar trebui ca rata variabilă a dobânzii să fie declarată statică? Explica.

Răspunde:
Nu, rata dobânzii se poate modifica în funcție de contul de economii.

2. Scrieți rezultatul din hamul de testare pentru clasa SavingsAccount.

Răspunde:
EconomiiCont: sold $115.0, rata dobânzii 0.15

EXERCIȚIUL 2

3. Ce metodă (metode) a (ale) clasei CheckingAccount demonstrează suprascrierea? Ce metode


demonstrează supraîncărcarea?

Răspunde:
Următoarele demonstrează suprasolicitarea:
1) depozit()
2) retragere()
3) toString()

Următoarele demonstrează supraîncărcarea:


1) Niciunul.

4. Este legal bacc0 = chacc1? De ce?

Răspunde:
Da, CheckingAccount extinde BankAccount, deci este legal ca o variabilă BankAccount să facă referire la un
obiect CheckingAccount.

5. Este legal chacc1 = bacc1? De ce?

Răspunde:
Nu, nu este legal ca o variabilă a unei clase copil să facă referire la obiectul unei clase părinte.

6. Pe ce variabile bacc1, chacc1, sacc1 a fost valabilă invocarea metodei deductFees()? Explica.

Răspunde:
Valabil numai pentru chacc1, deoarece CheckingAccount este singura clasă care are metoda publică void
deductFees().

7. Ce erori de compilare ar putea fi remediate prin casting? Care dintre ele nu a putut fi remediată? De ce?

Răspunde:
bacc1 ar putea fi distribuit ca CheckingAccount pentru a remedia eroarea de compilare. Acest lucru se datorează
faptului că CheckingAccount se extinde de la BankAcount și bacc1 este o variabilă a clasei părinte.

SAC1 nu a putut fi distribuită, deoarece este o clasă soră.

8. Programul rulează după ștergerea liniei care provoacă eroarea de compilare? Dacă programul s-a prăbușit,
de ce s-a prăbușit?
Răspunde:
Programul se blochează din cauza tipurilor incompatibile: SavingsAccount nu poate fi convertit în
CheckingAccount.

9. Care a fost eroarea de execuție obținută la schimbarea super.deposit(amount) în deposit(amount) în clasa


CheckingAccount.java?

Răspunde:
Eroarea a fost: "clasa BankAccount nu poate fi aruncată în clasa CheckingAccount (BankAccount și
CheckingAccount sunt în modulul fără nume al încărcătorului 'app') la TestBankAccounts.main"

10. De câte ori este invocată metoda de depunere?

Răspunde:
De două ori?

EXERCIȚIUL 3

11. De ce compilatorul emite un mesaj de eroare atunci când invocă newAcc.getTransactionCount()?


De ce compilatorul emite un mesaj de eroare atunci când invocă newAcc.getInterestRate()?

Răspunde:
Metodele getter la care se face referire nu există în BankAccount.java.

newAcc.getTransactionCount() și newAcc.getInterestRate() necesită definirea metodelor getTransactionCount()


și getInterestRate(), publice în BankAccount - nu există.

12. Puteți spune dacă în extrasul String accountInfo = newAcc.toString(); cel


metoda toString() invocată este din clasa CheckingAccount sau din clasa SavingsAccount? Explicați-vă
răspunsul.

Răspunde:
Nu, atât metodele SavingsAccount.java cât și CheckingAccount.java trebuie săString().
Nu există nicio modalitate de a discerne care dintre ele este apelat de la BankMachine.

S-ar putea să vă placă și