Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: Reference This

  1. #1

    Reference This

    Non riesco a capire il refernce this in Java. Eppure ho capito altri concetti più difficili.

    Qualcuno può spiegarmi la cosa in maniera semplice semplice semplice con qualche esempio ancora più semplice...

    Grazie

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    codice:
    public class Vegetale
    {
      private Date dataScoperta;
      private String nomeLatino;
      private String nomeComune;
     
      public Vegetale(dataScoperta)
      {
        this.dataScoperta = dataScoperta;   // Distingue la variabile locale da quella di classe
      }
    
      public Vegetale (Date dataScoperta, String nl)
      {
        this.dataScoperta = dataScoperta;
        nomeLatino = nl;  // this non occorre perché variabile locale e di classe hanno nomi diversi
      }
    
      public Vegetale (String nl)
      {
        this (null, nl);   // Richiamo il costruttore con due parametri
      }
    
      public Vegetale metodoAssurdo()
      {
        return this;  // Restituisce un riferimento a questo oggetto
      }
    
      public void setNomeComune (String nomeComune)
      {
        this.nomeComune = nomeComune;  // come per il primo costruttore, solo che questo è un setter!
      }
    }
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  3. #3
    Io continuo a non capire una mazza. A questo punto mi domando se è possibile "fare a meno" del concetto del refence this. Mi sembra l'unica soluzione

  4. #4
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    up

    Ho aggiunto un metodo assurdo...

    Se ora non ne comprendi l'utilità, non ti preoccupare: la scoprirai quando sarà necessario. Nelle applicazioni grafiche con Swing e awt è molto frequente una istruzione come questa:

    addActionListere(this);

    Per il resto è utile per setter e costruttori: permette (come nel primo costruttore sopra) di non dover lavorare troppo di fantasia per trovare i nomi dei parametri. Nulla di essenziale, ma molto comodo.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  5. #5
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Scusa ma non mi è riuscito di trovarlo prima...

    Using the this Keyword
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  6. #6
    Grazie Pastore. Comunque se non ti dispiace vorrei provare a dare una mia interpretazione di quello che hai scritto per vedere se almeno ho inteso qualcosina

  7. #7
    Io faccio questo esempio

    public class Data

    {
    private int giorno
    private int mese
    private int anno

    public void set giorno (int giorno)
    {
    if (this.giorno>0 && this.giorno<=31)
    this.giorno=giorno;
    }
    else
    {System.out.println(“Giorno non valido”)


    Anzitutto ti prego di sorvolare sulla correttezza sintattica (sono ancora ai primordi).

    Allora poichè ho una variabile d'istanza (all'interno della classe ma fuori dal metodo) che ha lo stesso nome della variabile locale per distinguere tra le due nel metodo set giorno gli dico ch deve fare riferimento alla variabile locale this.giorno. Giusto?

  8. #8
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    nel metodo set giorno gli dico ch deve fare riferimento alla variabile locale this.giorno.
    mmm.. la variabile locale è giorno.
    quella d'istanza è this.giorno.

    però... nell'if controlli il valore della variabile d'istanza, non di quella locale.

    Codice PHP:
    public void setGiorno (int giorno)
    {
      if (
    this.giorno>&& this.giorno<=31)  // Il this non è di troppo in questa riga?
        
    this.giorno=giorno;
      else
        
    System.out.println(“Giorno non valido+giorno);

    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  9. #9
    Cioè nell'if io sto mi riferisco alla variabile d'istanza giusto?
    Comunque il this serve a distinguere queste due variabili?

  10. #10
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Cioè nell'if io sto mi riferisco alla variabile d'istanza giusto?
    Allora io farei così:
    Codice PHP:
      if (giorno>&& giorno<=31
    In questo modo viene controllato il valore del parametro giorno e non della variabile d'istanza giorno.


    Comunque il this serve a distinguere queste due variabili?
    si
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

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