davide.fruci ha scritto:
public boolean equals(Object o)
{
if(o == null)
return false;
if(!(o instanceof Frazione))
return false;
}
Il primo test è ok ma il test con instanceof testa già il null, quindi il primo non servirebbe.
In genere per evitare il ! e le parentesi che sono necessarie in quel caso, si fa il contrario: se o instance X allora cast e confronti,
else return false. Ma è questione di gusti.
Una tipica ottimizzazione invece è testare che o sia == con
this (ovvero stesso identico oggetto) e in tal caso si restituisce direttamente true. Ma è un di più che non sempre serve.
davide.fruci ha scritto:
Il cast lo farei così: Frazione F = (Frazione)o;
Sì. Ma non usare, in generale, nomi di variabili con la maiuscola iniziale.
davide.fruci ha scritto:
poi che devo fare? Grazie
Frazione ha un numeratore e un denominatore. Quando è, secondo quello che tu sai/vuoi, che due oggetti Frazione sono uguali? Se confronti banalmente i campi tra i due oggetti hai la uguaglianza di "stato" ma non, in questo caso molto particolare, la uguaglianza matematica (es. 2/4 e 4/8)