Avatar ·

Was ist eine "statische Klasse" in Java? Erklären Sie anhand von Beispielen

Hallo Kollegen! Ich habe vor kurzem angefangen, Java zu lernen, und bin auf den Begriff "statische Klasse" (static class) gestoßen. Das Konzept von "static" für Felder und Methoden habe ich wohl verstanden – es bedeutet, dass sie zur Klasse gehören, nicht zur Instanz. Aber wenn es um eine ganze Klasse geht, bin ich verwirrt. Ich habe versucht, diesen Code zu schreiben: ```java public class Main { public static class Helper { public void printMessage() { System.out.println("Hello from static class!"); } } public static void main(String[] args) { Helper h = new Helper(); h.printMessage(); } } ``` Das funktioniert. Aber wenn ich das Wort `static` vor `class Helper` entferne, funktioniert es auch. Was ist dann der Unterschied? Und in welchen Situationen sollte man `static` für eine Klasse verwenden? Ich habe gelesen, dass eine "statische Klasse" nur verschachtelt (nested) sein kann. Aber was bringt das? Warum kann man nicht einfach eine normale innere Klasse verwenden? Und ich habe auch gehört, dass es einige Einschränkungen gibt...