E' importante conoscere il ciclo di vita delle variabili che usiamo nei nostri programmi.
Prima di tutto chiariamo la differenza tra dichiare una variabile o un metodo in modo publico o privato:
public void nome_metodo( parametri_eventuali )
{
istruzioni;
}
Un metod così definito: public è invocabile da qualunque classe
Se avessi messo private sarebbe stato invocabile solo ed esclusivamente all'interno della classe
in cui è scritto
public class Classe
{
private String nome;
....metodi vari......
}
Stessa cosa dicasi per le variabili:
ho dichiarato come private la variabile nome per cui potrò vedere questa variabile solo all'interno
della classe in cui l'ho dichiarata.
Se, invece, l'avessi dichiarata come public avrei potuto accedervi da qualunque classe
Spero sia chiara la differenza tra variabili/metodi publici o privati.
Passiamo allora alla vita o life-time di una variabile.
Se dichiaro una variabile subito dopo la dichiarazione della classe o comunque fuori da un metodo, essa
avrà vita fintanto che la classe sarà utilizzata dal programma.
Se invece dichiaro una variabile all'interno di un metodo essa sarà distrutta non appena il metodo finirà.
Se dichiaro la variabile all'interno di un blocco decisionale o di un ciclo ( if,while,for,do...while) essa sarà
distrutta non appena il flusso del programma uscirà dal ciclo o dal blocco decisionale.
Es.
public class Classe
{
int a;
public void getHostByName()
{
String name;
......;
if ( condizione)
{
int b;
............
}
for(int i=0;condizione;i++)
{
............
}
}
}
Analizziamo il life-time di ogni variabile:
int a : Avrà vita per tutta la durata della classe
String name : Avrà durata per tutto il metodo getHostByName() poi verrà distrutta
int b : Avrà durata per tutto il blocco IF poi verrà distrutta
int i : Avrà durata per tutto il ciclo FOR e poi come le altre verrà distrutta