Qualcuno sarebbe così gentile da spiegarmi bene cos'è una variabile d'istanza?
Grazie in anticipo![]()
Qualcuno sarebbe così gentile da spiegarmi bene cos'è una variabile d'istanza?
Grazie in anticipo![]()
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ì:
Posso creare tante istanze di questa classe e ciascuna avrà i propri valori per le variabili x e y: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; } }
Ho creto 5 istanze della classe Punto, ciascuna delle quali avrà i propri valori per le variabili (di istanza, appunto) 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);
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
Spiegazione chiara e di grande aiuto come al solitoOriginariamente 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ì:
Posso creare tante istanze di questa classe e ciascuna avrà i propri valori per le variabili x e y: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; } }
Ho creto 5 istanze della classe Punto, ciascuna delle quali avrà i propri valori per le variabili (di istanza, appunto) 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);
Ciao.![]()
Grazie mille, ciao![]()
Bene... vedi anche il PS che ho aggiunto dopo perchè, se non hai ancora visto i modificatori di accesso, potrebbe fuorviarti.Originariamente inviato da TrashcanDLM
Spiegazione chiara e di grande aiuto come al solito
Grazie mille, ciao![]()
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