Buono sconto 4% su Toner e Cartucce agli utenti AZpoint. SU Iomiricarico.it!!
- Le variabili in Java
Nella programmazione tradizionale una variabile è una porzione di memoria in
cui è immagazzinato un certo tipo di dato. Per esempio un intero in Java è
immagazzinato in 32 bit. I tipi di Java saranno comunque argomento del prossimo
capitolo.
Anche per le variabili possiamo distinguere due fasi: dichiarazione ed
assegnazione.
- Dichiarazione di una variabile:
La sintassi per la dichiarazione di una variabile è la seguente:
[modificatori] tipo_di_dato nome_della_variabile;
· modificatori: parole chiavi di Java
che possono essere usate per modificare in qualche modo le funzionalità e le
caratteristiche della variabile.
· tipo di dato: il tipo di dato della
variabile.
· nome del variabile: identificatore
della variabile.
Ecco una classe che definisce in maniera superficiale un quadrato
class Quadrato
{
public int altezza;
public int larghezza;
public final int numeroLati=4;
}
In questo caso abbiamo definito due variabili intere chiamate altezza
e larghezza,
ed una costante numeroLati.
Infatti il modificatore final
rende una variabile costante nel suo valore. Potremmo anche scrivere, ottenendo
lo stesso risultato pratico:
class Quadrato
{
public int altezza, larghezza;
public final numeroLati=4;
}
In questo caso possiamo notare una maggiore compattezza del codice ottenuta
evitando le duplicazioni.
La dichiarazione di una variabile è molto importante. La posizione della
dichiarazione definisce lo scope, ovvero la visibilità, ed il ciclo di vita
della variabile stessa. In pratica potremmo definire tre tipi diversi di
variabili in base alla posizione della loro dichiarazione:
- Variabili d’istanza:
Una variabile è detta d’istanza se è dichiarata in una classe, ma al di
fuori di un metodo. Le variabili definite nella classe Quadrato
sono tutte di istanza.
Esse condividono il proprio ciclo di vita con l’oggetto (istanza) cui
appartengono: quando un oggetto della classe Quadrato
è istanziato, viene allocato spazio per tutte le sue variabili d’istanza che
vengono inizializzate ai relativi valori nulli (una tabella esplicativa è
situata alla fine di questo modulo). Nel nostro caso, le variabili altezza e
larghezza saranno inizializzate a zero. Ovviamente numeroLati
è una costante esplicitamente inizializzata a 4,
ed il suo valore non potrà cambiare. Una variabile di istanza smetterà di
esistere, quando smetterà di esistere l’oggetto a cui appartiene.
- Variabili locali:
Una variabile è detta locale (o di stack, o automatica, o anche temporanea)
se è dichiarata all’interno di un metodo. Essa smetterà di esistere quando
terminerà il metodo. Una variabile di questo tipo, a differenza di una
variabile di istanza, non sarà inizializzata ad un valore nullo al momento dell’istanza
dell’oggetto a cui appartiene. Ciò implica che prima che il metodo termini,
una variabile locale deve essere esplicitamente inizializzata per non ottenere
un errore in compilazione. Infatti non è possibile dichiarare una variabile, e
quindi riservare spazio in memoria per essa, e poi lasciare vuoto questo spazio.
E’ bene notare che l’inizializzazione di una variabile locale, deve essere
realizzata a livello del blocco di codice dove è definita la variabile, e non
ad un livello più interno.
- Parametri formali:
Le variabili dichiarate all’interno delle parentesi tonde che si trovano
alla destra dell’identificatore nella dichiarazione di un metodo, sono dette
parametri o argomenti del metodo. Per esempio nella seguente dichiarazione del
metodo somma
vengono dichiarati due parametri interi x
ed y:
public int somma(int x, int y)
{
return (x+y);
}
I parametri di un metodo saranno inizializzati, come abbiamo già abbiamo
potuto notare, al momento della chiamata del metodo. Infatti, per chiamare il
metodo somma,
dovremo passare i valori ai parametri per esempio nel seguente modo:
int risultato=oggetto1.somma(5,6);
In particolare, all’interno del metodo somma,
la variabile x
varrà 5,
mentre y
varrà 6.
Dal momento che il passaggio di parametri avviene sempre per valore, potremmo
anche scrivere:
int a=5, b=6;
int risultato=oggetto1.somma(a,b);
ed ottenere lo stesso risultato. È importante sottolineare, che un parametro
si può considerare anche una variabile locale del metodo, avendo stessa
visibilità e ciclo di vita.
N.B.: il concetto di variabile d’istanza si differenzia a tal punto dai
concetti di variabile locale, e di parametro, che il compilatore accetta la
dichiarazione in una classe, di una variabile locale (o un parametro) e di una
variabile d’istanza con lo stesso identificatore. Quest’argomento sarà
trattato in dettaglio nel modulo 5.
|