/**
* 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;
}
}