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