|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jun 2008
Messaggi: 4
|
Ridefinizione equals
Salve a tutti!
Devo svolgere un programma dove è necessaria la ridefinizione in overloading e overriding del metodo equals, x la sorgente si di codice che ho postato sono corretti i metodi? Codice:
public class Calcolatore implements Serializable {
private String nome;
private int primo;
private int secondo;
private int terzo;
private static final long serialVersionUID=45L;
public Calcolatore (int primo, int secondo,int terzo,String nome)
{
this.primo=primo;
this.secondo=secondo;
this.terzo=terzo;
this.nome=nome;
}
public boolean equals (Object obj)
{
if (obj istanceof Calcolatore)
Calcolatore k = (Calcolatore) obj;
return (k.getNome().compareTo(nome)==0) && (k.getPrimo==primo)....
}
else return false;
}
public boolean equals (Calcolatore k)
{
return (k.getNome().compareTo(nome)==0) && (k.getPrimo==primo)....
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Io di solito faccio così:
Codice:
public boolean equals (Object obj)
{
if (obj istanceof Calcolatore)
{
Calcolatore k = (Calcolatore) obj;
if((k.getNome().compareTo(nome)==0) && (k.getPrimo==primo)...)
{
return true;
}
}
return false;
}
Inoltre, sempre per motivi di leggibilità, preferisco procedere con degli if annidati che vanno a verificare la verità dell'uguaglianza e alla fine della catena torno true; altrimenti si esce con false. P.S.: dato che "nome" è di tipo String per fare il confronto potresti sfruttare il metodo .equals di String, così: Codice:
...
f(k.getNome().equals(nome) && k.getPrimo==primo)...)
{
return true;
}
...
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 30-06-2008 alle 16:36. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:17.



















