Skip to main content

Cos'è una variabile di istanza?

Una variabile di istanza è un pezzo di dati nella programmazione orientata agli oggetti che ha il proprio valore unico per ogni oggetto in cui risiede.Le variabili di istanza possono anche essere chiamate membri dell'istanza, campi non statici e membri dei dati.Sono una parte importante della maggior parte degli oggetti, con in mano pezzi specifici che l'oggetto utilizza per il calcolo.

Ad esempio, se esistono due oggetti, A e B, in cui l'oggetto A ha una variabile di istanza chiamata blah e anche oggetto BHa una variabile di istanza chiamata blah, le due variabili blah sono entità distinte.Ogni variabile è associata all'oggetto che lo incapsula.Il nome completo della variabile blah associato all'oggetto A è A.blah, mentre il nome completo della variabile blah associato all'oggetto B è B.blah.Ognuna se queste variabili possono avere il proprio valore.Se gli oggetti A e B sono dello stesso tipo e un altro oggetto di quel tipo, viene creato e l'oggetto C avrà anche una variabile di istanza blah, che può avere il proprio valore unico.

Le variabili di istanza sono spesso confuse conVariabili statiche, ma i due sono significativamente diversi.Contrariamente alle variabili di istanza, di cui ogni oggetto di un particolare tipo ha le sue variabili statiche hanno un solo valore e questo valore è lo stesso per ogni oggetto del tipo appropriato.Le variabili statiche sono spesso chiamate variabili di classe, che non sono le stesse delle variabili di istanza.

A seconda delle proprietà di visibilità loro assegnate, le variabili di istanza possono essere visibili solo all'interno di un particolare oggetto, a un oggetto e alle sue sottoclassi o all'oggettoin cui risiede e qualsiasi altro oggetto.Quel tipo di visibilità finale, chiamato visibilità pubblica, è spesso considerato una cattiva pratica per esempio, perché è facile violare i principi di incapsulamento nella programmazione orientata agli oggetti.Nonostante questo tabù, ci sono momenti in cui le variabili di istanza pubblica sono utili.Ad esempio, molte classi standard in Java hanno variabili di istanza pubblica, che a volte consentono una facile modifica delle proprietà.

La visibilità di una variabile di istanza entra anche in gioco con l'eredità.Se una classe eredita da un'altra, ciò non dà immediatamente entrambe le classi l'accesso alle reciproci di istanza.Le variabili di istanza privata nella superclasse e nella sottoclasse rimangono limitate solo a quelle classi, quindi una variabile privata nella sottoclasse non può essere vista dalla superclasse e viceversa.Le uniche variabili di istanza che sia la superclasse che la sottoclasse possono vedere sono variabili protette nella superclasse.