Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [Java] this.variabile

  1. #1

    [Java] this.variabile

    Il termine < this > é sempre necessario anche quando non richiesto?
    Ad esempio in una classe dichiaro private int variabile;
    La restituisco trámite un getVariabile().
    Che contiene un: return this.variabile; ? Ma anche con return variabile;
    Quale é la differenza?
    jabjoint

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da jabjoint Visualizza il messaggio
    Il termine < this > é sempre necessario anche quando non richiesto?
    Ad esempio in una classe dichiaro private int variabile;
    La restituisco trámite un getVariabile().
    Che contiene un: return this.variabile; ? Ma anche con return variabile;
    Quale é la differenza?
    Il this, inteso come riferimento alla istanza "corrente", è quasi sempre superfluo esplicitarlo, tranne quando:
    - il campo (variabile di istanza) a cui si vuole fare riferimento è stato "nascosto"
    - da una inner-class si vuole usare un membro della classe contenitore che è nascosto dalla inner-class e si usa la forma detta Qualified this.

    Ignora per un momento il secondo caso. Il primo invece è molto più comune:
    codice:
    public class Persona {
        private String nome;
    
        public void setNome(String nome) {
            this.nome = nome;
        }
    
        public String getNome() {
            return nome;
        }
    }

    Nel setNome il parametro nome "nasconde" (shadowing) il campo nome. All'interno del setNome, solo "nome" è il parametro, NON il campo. Qui il this è obbligatorio per fare riferimento al campo che riceve l'assegnamento.

    Nel getNome invece non c'è nulla che effettua lo shadowing del campo, quindi nome o this.nome è assolutamente equivalente. C'è chi tende a mettere, per stile, il this.nome anche nel getter. Io invece no, ad esempio.
    Ultima modifica di andbin; 06-04-2022 a 16:19
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ok. Grazie, Buona serata. Sembra ben fatto il blog.
    jabjoint

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 © 2025 vBulletin Solutions, Inc. All rights reserved.