Bestaat er zoiets als static class
in java?
Wat is de betekenis van zo'n klasse. Moeten alle methodes van de static class ook static
zijn?
Is het omgekeerd ook nodig, dat als een class alle static methods bevat, de class ook static moet zijn?
Waar zijn statische klassen goed voor?
Wel, Java heeft "static nested classes", maar ze'zijn helemaal niet hetzelfde als C#'s static classes, als dat'is waar je vandaan kwam. Een statische geneste klasse is er gewoon een die'niet impliciet een verwijzing naar een instantie van de buitenste klasse heeft.
Statische geneste klassen kunnen instantie-methoden en statische methoden hebben.
Er bestaat niet zoiets als een top-level statische klasse in Java.
Er is een statische [geneste] klasse1, deze [statisch geneste] klasse heeft geen instantie van de omringende klasse nodig om zelf geïnstantieerd te worden.
Deze klassen [static nested ones] hebben alleen toegang tot de statische leden van de omsluitende klasse [aangezien zij geen enkele verwijzing heeft naar instanties van de omsluitende klasse...]
codevoorbeeld:
public class Test {
class A { }
static class B { }
public static void main(String[] args) {
/*will fail - compilation error, you need an instance of Test to instantiate A*/
A a = new A();
/*will compile successfully, not instance of Test is needed to instantiate B */
B b = new B();
}
}