Finora abbiamo mostrato frammenti di codice dando per scontato che siano parte di un processo attivo: in tutto questo c’è una falla. Se un metodo viene chiamato senza che l’oggetto di cui è membro sia attivo, quest’ultimo non sarebbe inizializzato. Il problema quindi è che in questo scenario un metodo per essere eseguito richiede un oggetto attivo, ma fino a che non c’è qualcosa in esecuzione un oggetto non può essere istanziato. L’unica possibile soluzione è quindi quella di creare metodi speciali che non richiedano l’attività da parte dell’oggetto di cui sono membri, così che possano essere utilizzati in qualsiasi momento. La risposta a questo problema è nei metodi statici, ossia metodi che appartengono a classi, ma non richiedono oggetti attivi. Questi metodi possono essere creati utilizzando la parola chiave static a sinistra della dichiarazione di un metodo.
Esempio
public class TestIn {
public static void metodoStatico() {
System.out.println(“Sono il metodo statico”);
}
public void metodoNormale() {
System.out.println(“Sono un metodo normale”);
}
public static void main(String[] args) {
TestIn.metodoStatico();
TestIn.metodoNormale();//da errore
}
}
La prima istruzione verrà eseguita normalmente(TestIn.metodoStatico();) poiché non richiede che l’oggetto sia insaziato, mentre la seconda istruzione non potrà essere eseguita in quanto richiama un metodo non statico e quindi richiede prima che venga i stanziato l’oggetto.-