Static class X

Hallo zusammen,

kann ich eine Klasse als statisch definieren? Was bringt das und wann brauche ich das?
oder definiere ich nur alle Methoden und Konstruktoren statisch?

Danke

Herbert

Java Tutorial, anyone? Das auf der Sunseite ist recht gut, wobei ich nicht genau weiß, wo man das jetzt findet, so Oracle das übernommen hat.

Methoden einer statischen Klasse kann man auch aufrufen wenn eine Klasse nicht instanziiert wurde.

zB die Klasse Mathe

int a=Mathe.Addition(3,7)

liefert das Ergebnis 10

man muss nicht erst
Mathe b = new Mathe() machen um Mathe nutzen zu können. Klassen /Methoden die Zustandsunabhängig funktionieren können statisch geamcht werden. Dies kann ggf. Arbeitsspeicher sparen und hat auch noch andere Vorteile.

Hi
danke
ich meinte ob und wann es geht zu sagen
static public class Klasse
{
}

und wann das Sinn macht und was es bringt.
Ich verstehe es soweit, dass es nur in inner Klassen geht und dort nur bei Member Klassen, nicht aber bei anonymen.
Oder so.
Grüsse
Herbert

Ja, das geht nur mit inneren Klassen.
Annahme: Du hast eine Klasse Outer mit einer inneren Klasse Inner.
Ist Inner nicht statisch, musst du es so schreiben:

Outer o = new Outer();
Outer.Inner i = new o.Inner(); // Nicht mehr ganz sicher, ob das so 100% korrekte Syntax ist

Du benötigst also eine Instanz von Outer, um auf Inner zuzugreifen.
Ist Inner dagegen statisch, geht es so:

Outer.Inner i = new Outer.Inner();

Du benötigst keine Instanz von Outer.

Grüße, JasonDelife.