Salve ragazzi ho un problema logico nel mio codice, mi spigo ho una classe astratta Utente che ha al suo interno ha un metodo loggati che è stato definito nel seguente modo
boolean loggati(String id,String pass)
{
// per l'id ha senso non fare distinzione tra minuscole e maiuscole per la password no!
if((this.id.equalsIgnoreCase(id))&&(this.pass.equals(pass)))
{
loggato=true;
return loggato;
}
return false;
}
ho una classe SempliceUser che estente il concetto di utente ed aggiunge una variabile double bitCoin... il punto è che quando mi dichiaro una variabile nel main di tipo sempliceUser e la setto con il costruttore nel seguente modo
// i primi due parametri vengono passati al costruttore della superClasse
sempliceUser utente1=new sempliceUser("giovanni ","qwerty",20);
poi provo ad eseguire il metodo di login facendo
utente1.loggati("giovanni", "qwerty");
mi dice che non sono loggato... come è possibile??... giocando un pò con il debugger mi accorgo che la pass è effettivamente la stessa (sia a livello di stringa che a livello di id) il nome no! la stringa che contiene il nome giovanni ha un id =36 quando effettua la chiamata a funzione magicamente cambia il suo id a 32 e questo quindi mi fa fallire il controllo...ma come è possible