WinstonSmith ha scritto:
devo dichiarare una classe statica, basta aggiungere public "static" class identificatoreClasse ?
e le variabili di classe - diciamo che abbiamo un metodo che restituisce la somma di due numeri - di conseguenza dovranno essere statiche così come il metodo? dovrà avere un costruttore? grazie
Alt, attenzione. Una classe "statica" può solamente essere contenuta DENTRO un'altra classe. Una normale classe ("top-level") NON può essere marcata static.
Quindi es.
public class ClasseContenitore { // ClasseContenitore NON può essere static
public static class ClasseContenuta { // Ok
}
}
Se ClasseContenuta NON fosse static, sarebbe una "inner class" che è una cosa ben diversa da una
nested (static) class.
Ma ClasseContenuta come static non ha nulla di speciale, nel senso che ClasseContenitore è solo come se fosse un "namespace" in più "sopra" di ClasseContenuta. E per ClasseContenuta varrebbero tutte le normali regole per le classi.
Ma se devi solo avere dei metodi static, allora NON ti serve una classe nested (static). Se dovessi fare solo una classe con metodi di "utilità" (come la classe java.lang.Math), allora normalmente si mette un costruttore privato (che impedisce la istanziazione) e poi i metodi static.