Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente bannato
    Registrato dal
    Nov 2015
    Messaggi
    60

    esercizio getter e setter

    Buongiorno,

    date un occhio a questo a codice per favore mi da un piccolo errore.

    https://nopaste.xyz/?b78396704db42ff...Cz1efUR7kk4to=

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da ilterribile Visualizza il messaggio
    date un occhio a questo a codice per favore mi da un piccolo errore.
    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.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente bannato
    Registrato dal
    Nov 2015
    Messaggi
    60
    Quote Originariamente inviata da andbin Visualizza il messaggio
    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

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da ilterribile Visualizza il messaggio
    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
    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.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    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!

  6. #6
    Utente bannato
    Registrato dal
    Nov 2015
    Messaggi
    60
    quindi il this serve per richiamare la nostra variabile....comunque l'esempio è fatto terribilmente....na chiavica

  7. #7
    Utente bannato
    Registrato dal
    Nov 2015
    Messaggi
    60
    funziona tutto grazie mille la differenza principale sta nei getter e setter a quanto vedo ad una prima occhiata questa è la differenza più importante

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da ilterribile Visualizza il messaggio
    quindi il this serve per richiamare la nostra variabile....
    Quote Originariamente inviata da ilterribile Visualizza il messaggio
    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
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.