Buongiorno,
date un occhio a questo a codice per favore mi da un piccolo errore.
https://nopaste.xyz/?b78396704db42ff...Cz1efUR7kk4to=
Buongiorno,
date un occhio a questo a codice per favore mi da un piccolo errore.
https://nopaste.xyz/?b78396704db42ff...Cz1efUR7kk4to=
L'errore che vedi è che dal main (statico) stai cercando di invocare getNome()/getCognome() che invece sono "di istanza" ... e senza avere un oggetto Dipendenti (che in teoria dovrebbe essere chiamato Dipendente)
Ma la questione non è quella! I due campi sono static. E questo non va bene.
Ok le variabili statiche sono state eliminate però adesso rimane sempre lo stesso errore
http://imparareaprogrammare.blogspot...-e-getter.html
questo è l'esempio da cui ho preso spunto ma lo stesso non funziona a causa del metodo principale static main hahahah che casino...anche mettendo la Dipendenti dip = new Dipendenti(); come nel codice finale d'esempio
Ultima modifica di ilterribile; 23-05-2018 a 11:35
Quell'esempio è sbagliato. E' vero che crea un oggetto Dipendenti assegnandolo alla variabile 'dip'. Ma poi NON usa questo dip per invocare i due metodi.
Questo invece quello che va fatto. getNome() e getCognome() sono "di istanza" e vanno invocati sul riferimento ad un oggetto di quella classe.
forse dovresti anche indicare l'errore...
cmq questo funziona:
codice:public class Dipendente { private String nome = "Paolo"; private String cognome = "Conte"; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getCognome() { return cognome; } public void setCognome(String cognome) { this.cognome = cognome; } public static void main(String[] args) { Dipendente dipendente = new Dipendente(); System.out.println("Nuovo Dipendente"); System.out.println("Nome:" + dipendente.getNome()); System.out.println("Cognome:" + dipendente.getCognome()); } }
studiati le differenze!
quindi il this serve per richiamare la nostra variabile....comunque l'esempio è fatto terribilmente....na chiavica
funziona tutto grazie mille la differenza principale sta nei getter e setter a quanto vedo ad una prima occhiata questa è la differenza più importante
No, la differenza "importante" non è quella. In quell'esempio che hai trovato, nel main invocava getNome() e getCognome() senza farlo su di un riferimento all'oggetto.
Mentre la cosa importante è appunto (dal codice di fermat) quel: dipendente.getNome()
Riguardo il this, invece nei metodi di istanza può generalmente essere "implicito". Va invece usato esplicitamente per fare riferimento ad un campo quando c'è uno "shadowing", una variabile locale (o parametro) che "nasconde" il campo.
Nel getNome() fare:
return nome;
oppure
return this.nome;
è assolutamente INDIFFERENTE. Per il compilatore è la stessa cosa (nel primo, il this è implicito).
Nel setNome(String nome) il parametro ha lo stesso nome del campo. Questo si chiama "shadowing". Quindi all'interno del metodo solo "nome" è il parametro e se vuoi accedere al campo DEVI usare this.nome