Avatar ·

Was ist eigentlich ein JavaBean? Einfache Erklärung für Anfänger

Hallo zusammen! Ich habe angefangen, Java zu lernen und stoße ständig auf den Begriff "JavaBean". Ich verstehe irgendwie, dass es eine Art Klasse ist, aber wenn ich die Dokumentation lese, steht dort etwas von "serialisierbaren Komponenten mit getter/setter-Methoden" und "Property-Containern". Ehrlich gesagt, klingt das nach Magie. \n\nIch habe eine einfache Klasse zum Speichern von Benutzerdaten:\n\n```java\npublic class User {\n public String name;\n public int age;\n}\n```\n\nIch kann ein Objekt erstellen und direkt auf die Felder zugreifen. Warum sollte ich getter und setter schreiben? Warum sollte ich Serializable implementieren? Und was sind diese "Bohnen" (beans) überhaupt? \n\nIch habe gesehen, dass in Java Enterprise Edition und Spring alle diese JavaBeans lieben, aber ich verstehe nicht, was ihr Vorteil ist. Vielleicht ist es einfach ein veraltetes Konzept? Erklärt mir bitte in einfachen Worten, was ein JavaBean ist, wofür es gebraucht wird und ob ich alle Regeln befolgen muss, wenn ich eine normale Anwendung und kein Unternehmenssystem schreibe.\n\nBesonders interessiert mich:\n1. Warum müssen Felder private sein?\n2. Wozu braucht man einen Konstruktor ohne Parameter?