Quote Originariamente inviata da Sevenis Visualizza il messaggio
Ma è quello che ho fatto all'interno del metodo solo che s1 e s2 sono due entità di due istanze diverse...

Sì ma il passaggio attraverso il metodo è superfluo, a meno che tu non voglia fare qualcosa in più oltre al semplice confronto e voglia richiamare più volte il metodo.
Il fatto che s1 e s2 siano campi di due istanze diverse non vuol dire nulla! Se hai le istanze sotto mano puoi confrontarle in qualsiasi punto, puoi benissimo fare ad esempio :


codice:
if(marioRossi.getNome().equals(rossimario.getNome())) {
  // fai quello che devi fare ...
}
Se il problema è un altro specifica meglio ma ripeto, una volta che hai le stringhe da confrontare non ha alcuna importanza il fatto che siano di un'istanza o un'altra, create localmente al metodo, variabili statiche o altro.

In ogni caso se l'idea era di scrivere un metodo per determinare quando due contatti siano uguali, il metodo migliore sarebbe ridefinire equals all'interno di IndirizzoPersona, datti un'occhiata anche a questo se la cosa ti interessa


Quote Originariamente inviata da Sevenis Visualizza il messaggio
In che senso più costruttori per evitare di richiamare tutti i set?
Al momento stai utilizzando un costruttore vuoto (quello definito implicitamente) per creare un contatto, e poi stai settando manualmente ogni campo. Questa parte sarebbe molto più veloce se prevedessi un costruttore con 4 argomenti in cui setti all'interno i campi, potendo creare un contatto in questo modo :

codice:
new IndirizzoPersona ("Mario", "Rossi", "email", 12345);
Il fatto che i costruttori siano uno o più cambia poco, se vuoi poter creare un contatto con meno informazioni può essere utile, per i parametri mancanti puoi settare un valore di default (in questo caso non ha molto senso), o semplicemente lasciarli vuoti.