imparareJava ha scritto:
for (int i = 0; i < prova.getA().length(); i++) {
for (int j = 0; j < prova.getB().length(); j++) {
if (prova.getA().equals(prova.getB())) {
Primo, non c'entrerebbe nulla una classe che "incapsula" due stringhe A e B. Non è quello che cambia la "semantica" del equals o degli operatori == e != con i tipi reference.
Secondo, forse non ti sei ancora reso conto: dentro i due for ripeti lo stesso equals. Se la stringa a avesse 2 caratteri e la stringa b avesse 3 caratteri, tu ripeti lo STESSO equals (con gli stessi dati) 6 volte. QUALE senso ha??
Terzo: continui (forse) a non comprendere il concetto di == e !=. Lo ripeto: con i tipi reference si basano SOLO sulla "identità" degli oggetti.
Integer numA = new Integer(123);
Integer numB = new Integer(123);
System.out.println(numA.equals(numB)); // true (hanno lo stesso contenuto)
System.out.println(numA == numB); // false (sono oggetti Integer DISTINTI)
Cosa (eventualmente) non è chiaro di questo codice?