Differenza tra variabile di istanza e variabile locale

Differenza tra variabile di istanza e variabile locale
Differenza tra variabile di istanza e variabile locale

Video: Differenza tra variabile di istanza e variabile locale

Video: Differenza tra variabile di istanza e variabile locale
Video: CL. 1° - LESSICO L8 CAPRIATA LIGNEA 2024, Luglio
Anonim

Variabile di istanza e 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 delle 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 (es. funzione, blocco di loop, ecc.) in cui è definita. Per questo motivo, si dice che le variabili locali abbiano un ambito locale.

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 anche note come variabili membro o variabili di campo. Le variabili di istanza vengono dichiarate senza utilizzare la parola chiave static in Java. I valori archiviati nelle variabili di istanza sono univoci per ciascun oggetto (ogni oggetto ha una copia separata) e i valori in essi archiviati rappresentano lo stato di quell'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 in memoria finché l'oggetto è attivo. Ad esempio, il colore di un'auto è indipendente dal colore di un' altra auto. 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 delle classi e all'esterno dei metodi. Di solito, le variabili di istanza sono dichiarate private in modo che sia possibile accedervi solo all'interno della classe in cui è dichiarata.

Cos'è una variabile locale?

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

Qual è la differenza tra variabile di istanza e variabile locale?

Le variabili di istanza vengono dichiarate all'interno di classi esterne ai 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 quella variabile è attiva, mentre una variabile locale è attiva durante l'esecuzione di quel metodo/blocco di codice. È possibile accedere a una variabile di istanza (che è dichiarata pubblica) all'interno della classe, mentre è possibile accedere a una variabile locale solo all'interno del blocco di codice dichiarato. L'uso delle variabili di istanza è limitato solo alla programmazione orientata agli oggetti, mentre le variabili locali non hanno tale limitazione.

Consigliato: