/** * BankAccount2: oggetti comparabili * * @version 10-Ott-2005 * @author Adriano Luchetta * * copyright: not applicable La classe descrive un conto bancario il cui saldo puo' essere * modificato tramite versamenti e prelievi. * */ public class BankAccount2 implements Comparable { // variabili di esemplare private double balance; // costruttori /** costruttore */ public BankAccount2() { balance = 0; } /** costruttore @param initialBalance il saldo iniziale */ public BankAccount2(double initialBalance) { balance = initialBalance; } // metodi pubblici /** versa una cifra di danaro nel conto bancario @param amount la cifra da depositare @throws java.lang.IllegalArgumentException */ public void deposit(double amount) { if (amount < 0) throw new IllegalArgumentException(); balance = balance + amount; } /** preleva una cifra di danaro dal conto bancario @param amount la cifra da prelevare */ public void withdraw(double amount) { balance = balance - amount; } /** ritorna il saldo del conto bancario @return il saldo del conto bancario */ public double getBalance() { return balance; } /** rende gli oggetti comparabili: relazione d'ordine totale. @param obj l'oggetto con cui fare la comparazione @return un numero negativo se il parametro implicito precede il parametro esplicito,
un numero positivo se il parametro implicito segue il parametro esplicito,
0 se nella comparazione sono equivalenti */ public int compareTo(Object obj) { BankAccount2 b = (BankAccount2) obj; if (balance < b.balance) return -1; if (balance > b.balance) return 1; return 0; } }