Buongiorno, il mio problema è il seguente:
data la classe
codice:
public class BankAccount {
private int balance;
public BankAccount(int quantity){
deposit(quantity);
}
public int getBalance() {
return balance;
}
public void setBalance(int q){
balance = q;
}
public void deposit(int quantity){
// If quantity is positive deposit quantity
// else display an error message.
}
public void withdraw(int quantity){
// If quantity is positive and if withdraw is possible
// (that is, it does not cause the balance to be negative)
// then withdraw, else display error messages.
}
private boolean isWithdrawPossible(int quantity){
boolean risultato;
// if quantity is not greater than balance then
// risultato is true, else risultato is false
return risultato;
}
}
devo implementare i metodi deposit(), withdraw(), e isWithdrawPossible().
In particolare:
- Il metodo deposit() deve aggiungere la somma di denaro passata come parametro al saldo corrente se la somma é positiva, altrimenti deve stampare un messaggio di errore senza depositare nulla.
- Il metodo withdraw() deve sottrarre la somma di denaro passata come parametro al saldo corrente se la somma é positiva e c' é abbastanza denaro nel conto, altrimenti deve stampare messaggi di errore senza prelevare nulla.
- Il metodo isWithdrawPossible() deve restituire vero se c'é abbastanza denaro nel conto per prelevare la quantità passata come parametro.
La mia soluzione è questa qui:
codice:
public class BankAccount {
private int balance;
public BankAccount(int quantity){
deposit(quantity);
}
public int getBalance() {
return balance;
}
public void setBalance(int q){
balance = q;
}
public void deposit(int quantity){
// If quantity is positive deposit quantity
// else display an error message.
if(quantity>0)
balance=balance+quantity;
else
System.out.println("The quantity isn't positive");
}
public void withdraw(int quantity){
// If quantity is positive and if withdraw is possible
// (that is, it does not cause the balance to be negative)
// then withdraw, else display error messages.
if(quantity>0 && isWithdrawPossible(quantity))
balance=balance-quantity;
}
private boolean isWithdrawPossible(int quantity){
boolean risultato;
if(!(quantity>=balance))
risultato=true;
else
risultato=false;
// if quantity is not greater than balance then
// risultato is true, else risultato is false
return risultato;
}
}
Che è una soluzione corretta ossia da i risultati aspettati però mi dicono che non è una soluzione ottimale. Perché?
Saluti
tulipan