Visualizzazione dei risultati da 1 a 5 su 5

Discussione: this_in_java

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    191

    this_in_java

    Sto facendo un piccolo applet e mi è capitata una cosetta
    faccio un esempio semplice per capirci, il concetto è lo stesso.

    Se scrivo:
    public class somma
    {
    int altezza=5;
    public somma()//costruttore
    {
    this.altezza=altezza;
    }
    int al()
    {
    int b;
    b=10-this.altezza;
    return(b);
    }
    ...
    ...
    perchè il this.altezza definito dentro il metodo al mi da 5, avendo scritto this non dovrebbe essere altezza una variabile del metodo al() e non la variabile altezza definita al'inizio?
    Ciao e grazie!

  2. #2
    No il this è riferito alla classe, non al metodo.
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    E' proprio il contrario: this si riferisce alla classe.
    Quindi non ha senso, nel costruttore, usare l'istruzione this.altezza = altezza, dato che ilcostruttore, da come l'hai definito tu, non prende alcun parametro di nome altezza.
    Lo stesso vale per il metodo al: non ha nessun parametro né variabile locale che si chiami altezza, quindi (anche se non è sbagliato), b=10-this.altezza; non ha tanto senso ed equivale a b = 10 - altezza;

    Ti faccio un esempio, che forse ti può essere utile:
    codice:
    public class Triangolo {
       int altezza;
       int base;
       int area;
    
       public Triangolo(int base, int altezza) {
          this.base = base;   //this.base è la variabile globale, base è la variabile locale al costruttore (il parametro)
          this.altezza = altezza;   //come sopra
       }
    
       public int getArea() {   //qui non ci sono variabili locali che oscurano quelle globali, posso fare a meno del this!
          area = base * altezza / 2;
          return area;
       }
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    191
    ora mi è tutto chiaro!
    In pratica se avessi:
    public class Triangolo {
    int altezza;
    int base;
    int area;

    public Triangolo(int base, int altezza) {
    this.base = base;
    this.altezza = altezza; }

    public int getArea() {
    int area;
    int base;
    int altezza;
    area = this.base * this.altezza / 2;
    return area;
    }
    }
    in questo caso devo mettere il this, altrimenti base e altezza si riferiscomno alle variabili del metoto e on a quelle delle classe!

    Ciao e grazie

  5. #5
    Esattamente
    però in questo caso
    public int getArea() {
    int area;
    int base;
    int altezza;
    area = this.base * this.altezza / 2;
    return area;
    }
    area=...
    area non è la variabile della classe , ma del metodo .
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

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.