Findes der noget som static class
i java?
Hvad er betydningen af en sådan klasse? Skal alle metoderne i den statiske klasse også være statiske
?
Er det omvendt nødvendigt, at hvis en klasse indeholder alle de statiske metoder, skal klassen også være statisk?
Hvad er statiske klasser gode til?
Java har statiske indlejrede klasser, men de er slet ikke det samme som statiske klasser i C#, hvis det var det, du kom fra. En statisk indlejret klasse er blot en klasse, som ikke implicit har en reference til en instans af den ydre klasse.
Statiske indlejrede klasser kan have instansmetoder og statiske metoder.
Der findes ikke en statisk klasse på øverste niveau i Java.
Der findes en statisk indlejret klasse, denne [statiske indlejrede] klasse har ikke brug for en instans af den omsluttende klasse for selv at blive instantieret.
Disse klasser [statiske indlejrede klasser] kan kun få adgang til de statiske medlemmer af den omsluttende klasse [da den ikke har nogen reference til instanser af den omsluttende klasse...]
kodeeksempel:
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();
}
}