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 :
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.codice:if(marioRossi.getNome().equals(rossimario.getNome())) { // fai quello che devi fare ... }
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
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 :
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.codice:new IndirizzoPersona ("Mario", "Rossi", "email", 12345);