Differenza tra variabile istanza e variabile locale

Anonim

Variante di istanza rispetto alla 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 questa 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 ciclo, ecc.) In cui è definita. A causa di 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 memorizzare lo stato di ogni oggetto in una classe. Sono noti anche come variabili di 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 univoche per ogni oggetto (ogni oggetto ha una copia separata) e i valori memorizzati in essi rappresentano lo stato di tale oggetto. Lo spazio per una variabile di istanza viene assegnato nell'heap, quando l'oggetto viene assegnato nell'heap. Di conseguenza, le variabili di istanza vengono mantenute nella memoria fino a quando l'oggetto è in modalità live. Ad esempio, il colore di un'auto è 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 sono dichiarate all'interno di classi e metodi esterni. Di solito, le variabili di istanza sono dichiarate private in modo che possano essere accessibili solo all'interno della classe dichiarata.

Che 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 considerate come variabili utilizzate da un metodo per memorizzare lo stato temporaneo. Il campo di applicazione di una variabile locale viene determinato utilizzando la posizione che la variabile viene dichiarata e le parole chiave speciali non vengono utilizzate a tale scopo. In genere, l'accesso a una variabile locale è limitato all'interno del blocco di codice che viene dichiarato (cioè tra le parentesi di apertura e chiusura di quel blocco di codice). Le variabili locali vengono normalmente memorizzate nello stack di chiamate. Ciò consentirebbe chiamate di funzione ricorsive per mantenere le proprie copie delle variabili locali da archiviare in spazi di indirizzi di memoria separati. Quando il metodo termina l'esecuzione, le informazioni relative al metodo vengono spuntate dalla stack di chiamate, distruggendo le variabili locali memorizzate.

Qual è la differenza tra Instance Variable e Local Variable?

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