Differenza tra variabile istanza e variabile locale

Istanza Variabile vs Variabile locale

Una variabile di istanza è un tipo di variabile presente nella programmazione orientata agli oggetti. È una variabile definita in una classe e ogni oggetto di quella classe contiene una copia separata di quella variabile. D'altra parte, l'uso di variabili locali non è limitato ai linguaggi di programmazione orientati agli oggetti. È una variabile che può essere valutata solo all'interno di un particolare blocco di codice (ad es. Funzione, blocco di loop, ecc.) In cui è definito. Per questo motivo, si dice che le variabili locali abbiano un ambito locale.

Che cos'è una variabile di istanza?

Le variabili di istanza vengono utilizzate nella programmazione orientata agli oggetti per archiviare lo stato di ciascun oggetto in una classe. Sono anche conosciuti come variabili membro o variabili di campo. Le variabili di istanza vengono dichiarate senza utilizzare la parola chiave statica in Java. I valori memorizzati nelle variabili di istanza sono univoci per ciascun oggetto (ogni oggetto ha una copia separata) ei valori memorizzati in essi rappresentano lo stato di tale oggetto. Lo spazio per una variabile di istanza viene allocato nell'heap, quando quell'oggetto viene allocato nell'heap. Pertanto, le variabili di istanza vengono mantenute nella memoria finché l'oggetto è attivo. Ad esempio, il colore di una macchina è indipendente dal colore di un'altra vettura. Quindi il colore di un oggetto auto può essere memorizzato in una variabile di istanza. In pratica, le variabili di istanza vengono dichiarate all'interno delle classi e all'esterno dei metodi. Di solito, le variabili di istanza vengono dichiarate come private, in modo che possano essere accessibili solo all'interno della classe dichiarata.

Cos'è una variabile locale?

Le variabili locali sono variabili con un ambito locale e vengono dichiarate all'interno di un blocco di codice specifico. Le variabili locali possono essere viste come variabili che vengono utilizzate da un metodo per memorizzare il suo stato temporaneo. L'ambito di una variabile locale viene determinato utilizzando la posizione in cui viene dichiarata la variabile e le parole chiave speciali non vengono utilizzate per questo scopo. In genere, l'accesso a una variabile locale è limitato all'interno del blocco di codice dichiarato (ad esempio tra le parentesi di apertura e di chiusura di quel blocco di codice). Le variabili locali sono generalmente memorizzate nello stack di chiamate. Ciò consentirebbe alle chiamate ricorsive di funzioni di mantenere le proprie copie delle variabili locali da memorizzare in spazi di indirizzi di memoria separati. Quando il metodo termina la sua esecuzione, le informazioni su tale metodo vengono estratte dallo stack di chiamate, distruggendo anche le variabili locali che sono state memorizzate.

Qual è la differenza tra variabile istanza e variabile locale?

Le variabili di istanza vengono dichiarate all'interno di classi al di fuori dei metodi e memorizzano lo stato di un oggetto, mentre le variabili locali vengono dichiarate all'interno di blocchi di codice e vengono utilizzate per memorizzare lo stato di un metodo. Una variabile di istanza è attiva finché l'oggetto che contiene tale variabile è attivo, mentre una variabile locale è attiva durante l'esecuzione di tale metodo / blocco di codice. È possibile accedere a una variabile di istanza (dichiarata pubblica) all'interno della classe, mentre è possibile accedere a una variabile locale all'interno del blocco di codice dichiarato. L'utilizzo di variabili di istanza è limitato alla programmazione orientata agli oggetti, mentre le variabili locali non hanno questa limitazione.