Modificatore static

Campi e metodi dichiarati static, sono associati alla classe e non a una particolare istanza

Pertanto esiste una sola copia di un campo statico, condiviso da tutte le istanze della classe

Non occorre istanziare un oggetto per usare un membro statico

Metodi statici possono accedere solo a membri statici della classe

Sono qualificati con il nome della classe, e non dell’istanza

Static

Utilizzate quando:

Definire un metodo o un attributo static significa dire che questo appartiene alla classe non è legato ad alcun oggetto in particolare

Un metodo static non può accedere a elementi non-static perchè questi non vengono creati fino a che non viene creato un oggetto

Un attributo o un metodo statico può essere chiamato sia in riferimento ad un oggetto sia in riferimento alla classe

Classi interne

Le classi interne non possono dichiarare metodi statici, ma è possibile che una classe interna sia static

Un’istanza di una classe interna implicitamente mantiene un riferimento all’oggetto della classe esterna che lo ha creato, questo non è vero per classi interne statiche:

Non è consentito inserire codice all’interno di una interfaccia, ma una classe interna statica può essere parte di una interfaccia