(Impara come e quando rimuovere questo messaggio modello)
Nella programmazione orientata agli oggetti con classi, una variabile di istanza è una variabile definita in una classe (cioè una variabile membro), per la quale ogni oggetto istanziato della classe ha una copia separata, o istanza. Una variabile d’istanza ha delle somiglianze con una variabile di classe, ma non è statica. Una variabile d’istanza è una variabile dichiarata in una classe ma al di fuori di costruttori, metodi o blocchi. Le variabili d’istanza sono create quando un oggetto viene istanziato, e sono accessibili a tutti i costruttori, metodi o blocchi della classe. I modificatori di accesso possono essere dati alla variabile di istanza.
Una variabile di istanza non è una variabile di classe anche se ci sono delle somiglianze. È un tipo di attributo di classe (o proprietà di classe, campo o membro di dati). La stessa dicotomia tra membri di istanza e di classe si applica anche ai metodi (“funzioni membro”); una classe può avere sia metodi di istanza che metodi di classe.
Ogni variabile di istanza vive in memoria per tutta la vita dell’oggetto che possiede.
Le variabili sono proprietà che un oggetto conosce di se stesso. Tutte le istanze di un oggetto hanno le loro copie di variabili di istanza, anche se il valore è lo stesso da un oggetto all’altro. Un’istanza di un oggetto può cambiare i valori delle sue variabili di istanza senza influenzare tutte le altre istanze. Le variabili di istanza possono essere usate da tutti i metodi di una classe a meno che il metodo non sia dichiarato come statico.