Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Delucidazioni variabili d'istanza

    Qualcuno sarebbe così gentile da spiegarmi bene cos'è una variabile d'istanza?
    Grazie in anticipo

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    E' una variabile che, come dice il nome, è legata alla singola istanza dell'oggetto a cui appartiene, ovvero, il suo valore può essere diverso per istanze diverse dell'oggetto.

    Un esempio aiuta senz'altro a capire: supponiamo di avere la classe Punto, che rappresenta un punto nel piano cartesiano. Lei possiede due variabili (di istanza) "x" e "y" che rappresentano le coordinate del punto.

    "x" e "y" sono variabili di istanza perchè ciascuna istanza della classe Punto avrà i suoi valori per tali coordinate. Avrò un'istanza di Punto che identifica l'origine e che avrà coordinate x=0, y=0. Posso avere un'altra istanza di Punto che rappresenta il punto di coordinate x=2, y=3, ecc.

    In Java, le variabili di istanza sono tutte quelle variabili dichiarate a livello di classe, che non sono statiche. La classe Punto dell'esempio, quindi sarà fatta così:

    codice:
    public class Punto {
    
       private int x;   // Variabile di istanza che rappresenta la coordinata X
       private int y;   // Variabile di istanza che rappresenta la coordinata Y
    
       public Punto(int x, int y) {
          this.x = x;
          this.y = y;
       }
    
       public int getX() { return x; }
       public int getY() { return y; }
    }
    Posso creare tante istanze di questa classe e ciascuna avrà i propri valori per le variabili x e y:

    codice:
    Punto origine = new Punto(0, 0);
    Punto primoQuadrante = new Punto(3, 4);
    Punto secondoQuadrante = new Punto(-5, 3);
    Punto terzoQuadrante = new Punto(-8, -2);
    Punto quartoQuadrante = new Punto(6, 7);
    Ho creto 5 istanze della classe Punto, ciascuna delle quali avrà i propri valori per le variabili (di istanza, appunto) x e y.

    PS: nell'esempio ho dichiarato x e y come private, perchè la buona regola le vuole così, ma il modificatore di accesso (privato, pubblico, protetto) non ha nulla a che vedere con l'argomento. Sarebbero comunque variabili di istanza perchè non sono statiche.

    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

  3. #3
    Originariamente inviato da LeleFT
    E' una variabile che, come dice il nome, è legata alla singola istanza dell'oggetto a cui appartiene, ovvero, il suo valore può essere diverso per istanze diverse dell'oggetto.

    Un esempio aiuta senz'altro a capire: supponiamo di avere la classe Punto, che rappresenta un punto nel piano cartesiano. Lei possiede due variabili (di istanza) "x" e "y" che rappresentano le coordinate del punto.

    "x" e "y" sono variabili di istanza perchè ciascuna istanza della classe Punto avrà i suoi valori per tali coordinate. Avrò un'istanza di Punto che identifica l'origine e che avrà coordinate x=0, y=0. Posso avere un'altra istanza di Punto che rappresenta il punto di coordinate x=2, y=3, ecc.

    In Java, le variabili di istanza sono tutte quelle variabili dichiarate a livello di classe, che non sono statiche. La classe Punto dell'esempio, quindi sarà fatta così:

    codice:
    public class Punto {
    
       private int x;   // Variabile di istanza che rappresenta la coordinata X
       private int y;   // Variabile di istanza che rappresenta la coordinata Y
    
       public Punto(int x, int y) {
          this.x = x;
          this.y = y;
       }
    
       public int getX() { return x; }
       public int getY() { return y; }
    }
    Posso creare tante istanze di questa classe e ciascuna avrà i propri valori per le variabili x e y:

    codice:
    Punto origine = new Punto(0, 0);
    Punto primoQuadrante = new Punto(3, 4);
    Punto secondoQuadrante = new Punto(-5, 3);
    Punto terzoQuadrante = new Punto(-8, -2);
    Punto quartoQuadrante = new Punto(6, 7);
    Ho creto 5 istanze della classe Punto, ciascuna delle quali avrà i propri valori per le variabili (di istanza, appunto) x e y.


    Ciao.
    Spiegazione chiara e di grande aiuto come al solito
    Grazie mille, ciao

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Originariamente inviato da TrashcanDLM
    Spiegazione chiara e di grande aiuto come al solito
    Grazie mille, ciao
    Bene... vedi anche il PS che ho aggiunto dopo perchè, se non hai ancora visto i modificatori di accesso, potrebbe fuorviarti.

    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

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.