Metodo ereditato da una classe astratta

di il
4 risposte

Metodo ereditato da una classe astratta

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

4 Risposte

  • Re: Metodo ereditato da una classe astratta

    broke31 ha scritto:


    
    sempliceUser utente1=new sempliceUser("giovanni ","qwerty",20);
                                                   ^
                                                   ^
    
    
    	utente1.loggati("giovanni", "qwerty");
    
    Io vedo uno spazio dopo il primo giovanni.
  • Re: Metodo ereditato da una classe astratta

    Come perdere 3 ore in una mossa lascia uno spazio in una stringa e comincia a farti tutti i film più assurdi in testa.... grazie adesso funziona:-)
  • Re: Metodo ereditato da una classe astratta

    Per evitare problemi di questo tipo puoi usare il metodo "trim" della classe String che semplicemente ti elimina gli spazi bianchi eventualmente presenti all'inizio e alla fine della stringa.. In questo modo applicando il metodo trim alla stringa " ciao " ottieni una nuova stringa "ciao"
  • Re: Metodo ereditato da una classe astratta

    Grazie gentilissimi!
Devi accedere o registrarti per scrivere nel forum
4 risposte