La Parola Chiave Static

– Indice Tutorial –

Static

Un componente (variabile, membro o classe) statico è un componente condiviso da tutte le istanze della classe. Può inoltre essere utilizzato anche senza istanziare la classe.

La keyword static può essere applicata a variabili, metodi, classi e blocchi di codice.

Variabile Statica

Una variabile statica, essendo condivisa da tutte le istanze della classe, è una variabile globale comune a tutti gli oggetti di quella classe.

Di conseguenza, se un’istanza modifica una variabile statica, questa modifica sarà visibile da tutte le altre istanze dello stesso tipo.

Esempio

public class Prova {

	
	static int count;
	

	public static void main(String[] args) {


		Prova p = new Prova();
		p.count = 30;
		
	
		
		Prova p1 = new Prova();
		p1.count = 40;
		System.out.println(p.count);
		
		Prova.count = 50;
		// notare che count vale per tutte le istanze l’ultimo valo-re assegnato ossia 50

Metodi Statici

Un metodo statico è un metodo legato alla classe, non all’istanza. Viene usato quando si ha necessita di creare una operazione che non usa dati specifici di una istanza

Esempio:

public class Prova {

	static public void hello() {

	}

	public static void main(String[] args) {

		Prova p = new Prova();

		Prova.hello();

	}

}

Classe Interna Statica

Una classe interna è una classe, definita all’interno di un’altra classe, la cui dichiarazione è preceduta dalla parola chiave static.

Esempio

public class Prova {

	static class Pippo{
		
	}
	

	public static void main(String[] args) {


		Pippo p = new Prova.Pippo();//Notare la sintassi con cui viene creato un oggetto di una classe interna statica:
		
	}
}

Una classe interna statica non può accedere ai dati non statici della classe che la contiene.

Blocco di Codice Statico

E’un blocco di codice, tra parentesi graffe, preceduto dalla keyword static  che può essere inserito al di fuori del corpo di un metodo, ovviamente sempre all’interno della classe:

Esempio

public class Prova {

	static {
		System.out.println("ciaoo");
		System.out.println("hello");
	}
	
	
	
}

All’interno di questi blocchi è possibile utilizzare solo variabili o metodi statici. Una classe può avere un numero qualsiasi di questi blocchi.

Video Lezione su Static

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *