POJO und JavaBean – 2026-02-10 (UDEMY)¶
POJO (Plain Old Java Object)¶
Definition¶
Ein POJO ist ein einfaches Java-Objekt ohne Abhängigkeit zu speziellen Frameworks oder technischen Anforderungen.
Es unterliegt keinen besonderen Konventionen außer den allgemeinen Java-Regeln.
POJOs werden häufig für: - Datenübertragung (DTO) - Serialisierung / Deserialisierung - Domänenmodelle
Typische Merkmale¶
- Private Felder
- Öffentliche Getter und Setter
- Parameterloser Konstruktor (üblich, aber nicht zwingend)
- Keine Framework-Abhängigkeit
Beispiel¶
public class Person {
private String name;
private int age;
public Person() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
JavaBean¶
Definition¶
Eine JavaBean ist ein spezieller Typ eines POJO, der definierte Konventionen einhält.
Verpflichtende Konventionen¶
- Parameterloser Konstruktor (erforderlich)
- Private Felder
- Öffentliche Getter und Setter
- Implementierung von
Serializable
Beispiel¶
import java.io.Serializable;
public class Employee implements Serializable {
private String name;
private int id;
public Employee() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
Zusammenhang¶
- Jede JavaBean ist ein POJO.
- Nicht jedes POJO ist eine JavaBean.
- JavaBeans folgen klar definierten Konventionen.
- POJOs sind allgemeiner und flexibler.
Annotationen in JavaBeans¶
Annotationen liefern Metadaten über Codeelemente.
Beispiele im Bean-Kontext¶
| Annotation | Zweck |
|---|---|
@BeanProperty |
Markiert Getter/Setter als Property-Accessor |
@Transient |
Feld wird nicht serialisiert |
@NotNull |
Feld darf nicht null sein (z. B. in Validation-Frameworks) |
Wichtige Standard-Annotationen in Java¶
| Annotation | Bedeutung |
|---|---|
@Override |
Methode überschreibt Superklassenmethode |
@Deprecated |
Markiert Code als veraltet |
@SuppressWarnings |
Unterdrückt Compiler-Warnungen |
@FunctionalInterface |
Interface mit genau einer abstrakten Methode |
@Retention |
Definiert Lebensdauer einer Annotation |
Annotationen sind Metadaten – sie verändern nicht direkt das Verhalten, sondern liefern Informationen für Compiler oder Frameworks.
Method Overriding¶
Definition¶
Method Overriding bedeutet: Eine Subklasse implementiert eine Methode neu, die bereits in der Superklasse existiert.
Voraussetzungen¶
- Gleicher Methodenname
- Gleiche Parameterliste
- Gleicher oder kompatibler Rückgabetyp
- Sichtbarkeit darf nicht eingeschränkt werden
Beispiel¶
public class SuperClass {
public void display() {
System.out.println("Display method in SuperClass");
}
}
public class SubClass extends SuperClass {
@Override
public void display() {
System.out.println("Display method in SubClass");
}
}
Wichtiger Hinweis¶
Die Annotation @Override hilft dem Compiler, Fehler frühzeitig zu erkennen.
Prüfungsrelevante Kernaussagen¶
- POJO = einfaches Java-Objekt ohne spezielle Anforderungen
- JavaBean = POJO + Konventionen (Serializable + No-Arg-Konstruktor)
- Annotationen liefern Metadaten
- Overriding erfordert identische Signatur
@Overrideerhöht Typsicherheit