Cosi credo il metodo e' ottimizzato:
Codice PHP:
public boolean equals(Object o){
if(o == this) return true; //se 'o' è == al 'this' si ritorna subito true
else{
if(o instanceof Studente){ // se 'o' è un istanza di 'Studente'
Studente s = (Studente) o;
return nome.equals(s.nome) && cognome.equals(s.cognome) &&
citta.equals(s.citta) && matricola.equals(s.matricola);
}else{
return false;
}
}
}
Un ultima cosa.
Se io volessi esprimere che due istanze di tipo Studente sono uguali solamente se solo un campo e' uguale (in questo caso vorrei trattare il campo 'matricola' come 'unique' come nei db), e' di buon norma fare questo tramite il metodo equals?? Secondo il mio ragionamento avro':
Codice PHP:
public boolean equals(Object o){
if(o == this) return true; //se 'o' è == al 'this' si ritorna subito true
else{
if(o instanceof Studente){ // se 'o' è un istanza di 'Studente'
Studente s = (Studente) o;
return matricola.equals(s.matricola);
}else{
return false;
}
}
}