Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Java e this.

  1. #1

    Java e this.

    Scusate la domanda forse un po troppo banale:

    Quando io scrivo this.nomevariabile cosa specifico? perchè a volte funziona anche sia che lo scrivo o no?
    Lo posso usare solo su variabili o anche su istanze di oggetti?

    -- utente Kubuntu --

  2. #2
    con this.nomevariabile richiami una variabile della classe e viene utilizzato quando ci si trova in situazioni che possono portare in confusione il compilatore

    Es.
    //Variabili di classe
    int pippo=4;
    ...
    ...
    public void copia(int pippo){
    //se tu facessi
    pippo=pippo;
    //non faresti altro che riassegnare il parametro
    //passato pippo con se stesso , in quanto
    //il parametro nell'area del metodo
    //oscura la variabile di classe che ha lo stesso nome
    //quindi per evitare ciò si usa
    this.pippo=pippo;
    //cioè this.pippo indica al compilatore di andare a prendere
    //la variabile della classe pippo e non usare il parametro //pippo
    }

    Ciauz
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  3. #3
    Grazie zero-2
    quindi ricapitolando con this.pippo vado a richiamare la variabile della classe int pippo=4; e la tengo distinta dal pippo del metodo, anche se hannolo stesso nome.
    -- utente Kubuntu --

  4. #4
    si può usare anke su istanze di oggetti....

    quando tu hai più costruttori, utilizzando this puoi richiamarne un altro. x esempio:

    codice:
    public class prova {
    
      private String s;
      private int a;
    
      public prova (int k) { ... }
    
      public prova () {
        this(0);
      }
    
      .
      .
      .
    
      // resto della classe
     
      .
      .
      .
    
    }
    in questo modo usando this nel costruttore per default (che ti consiglio di implementarlo SEMPRE se la classe non è final) richiami un altro costruttore della stessa classe.

    ciauz!

  5. #5
    UAU! Grazie Storm, quindi in quel caso con this(0) quando uso il costruttore senza dargli parametri è come se gli dessi k=0

    Molto comodo
    -- utente Kubuntu --

  6. #6
    esattamente!


    ah...un'altra cosa ke magari può servirti per i costruttori (nn arrabbiarti se la sai già). supponi di avere una cosa del genere:

    codice:
    public class class2 extends class1 {
    
      private String a;
    
      public class2 (String a) {
        this.a = a;
      }
    
      .
      .
      . // resto della classe.
      .
      .
    }
    se la classe madre "class1" non possiede un costruttore senza parametri questa cosa non ti verrà mai compilata perchè la subclasse non riesce a trovare un costruttore implicito nella classe madre.

    x quello ti consigliavo di mettere sempre un costruttore di default nelle classi non final (cioè estendibili).

    ciauz!

  7. #7
    Grazie Storm, questa cosa proprio non la sapevo :adhone:
    -- utente Kubuntu --

  8. #8

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.