Klassen & Objekte
Objektorientierung bündelt Daten und Verhalten: Klassen sind Baupläne, Objekte ihre konkreten Instanzen.
Ansicht
01
Verstehen
Lies die Kernidee und das Beispiel.
02
Prüfen
Beantworte die Aktiv-Checks.
03
Anwenden
Setze die Transferaufgabe um.
Mini-Erfolg
Du hast zwei Objekte derselben Klasse mit unterschiedlichem Zustand erzeugt.
Warum das wichtig ist: Java ist objektorientiert. Wer Klassen versteht, versteht den größten Teil echter Java-Projekte.
Vorher hilfreich
Lerninhalt
Verstehen & anwenden
Klasse und Konstruktor
Felder speichern den Zustand, der Konstruktor initialisiert ihn.
this unterscheidet Felder von gleichnamigen Parametern.
public class Lernkarte {
private String frage;
private String antwort;
public Lernkarte(String frage, String antwort) {
this.frage = frage;
this.antwort = antwort;
}
}Objekte erzeugen
new ruft den Konstruktor auf und liefert eine neue Instanz.
Jedes Objekt hat eigenen Zustand, teilt aber die Methoden seiner Klasse.
Lernkarte karte = new Lernkarte("2+2?", "4");
Lernkarte andere = new Lernkarte("Hauptstadt?", "Wien");Kapselung
private macht Felder von außen unzugänglich — Zugriff nur über Methoden.
Getter lesen, Setter schreiben kontrolliert. So bleibt der Zustand konsistent.
public String getFrage() {
return frage;
}Vertiefung
Objekte sind eigene kleine Welten
Eine Klasse beschreibt, welche Daten ein Objekt hat und was es kann. Jedes Objekt besitzt seinen eigenen Zustand, teilt aber den Code der Klasse.
Variablen halten Referenzen auf Objekte. Zwei Variablen können auf dasselbe Objekt zeigen. Wenn du das verstehst, erklären sich viele unerwartete Änderungen von selbst.
Lernkarte a = new Lernkarte("2+2?", "4");
Lernkarte b = new Lernkarte("Hauptstadt?", "Wien");
a.setAntwort("4");
b.setAntwort("Bern");
System.out.println(a.getAntwort()); // 4
System.out.println(b.getAntwort()); // BernMerksatz: Klasse = Bauplan, Objekt = konkrete Instanz. Jede Instanz hat eigenen Zustand, auch wenn der Code geteilt wird.
Übungsaufgabe
Buch-Klasse
Modelliere ein Buch mit Titel, Autor und Seitenzahl. Erzeuge zwei Bücher und gib ihre Daten aus.
Das soll dein Programm können
- Klasse Buch mit privaten Feldern
- Konstruktor für alle drei Werte
- Getter für die Felder
- Eine Methode beschreibung(), die einen lesbaren Text zurückgibt
Schreibe den Code hier oder in deiner IDE und vergleiche ihn dann mit der Lösung.
Dein Code wird automatisch auf diesem Gerät gespeichert.
Hinweis anzeigen
Beginne mit den Feldern. Der Konstruktor setzt sie mit this. beschreibung() kann einen String mit + zusammensetzen.
Lösung anzeigen
public class Buch {
private String titel;
private String autor;
private int seiten;
public Buch(String titel, String autor, int seiten) {
this.titel = titel;
this.autor = autor;
this.seiten = seiten;
}
public String beschreibung() {
return titel + " von " + autor + " (" + seiten + " Seiten)";
}
public static void main(String[] args) {
Buch a = new Buch("Effektives Java", "Joshua Bloch", 400);
Buch b = new Buch("Clean Code", "Robert C. Martin", 464);
System.out.println(a.beschreibung());
System.out.println(b.beschreibung());
}
}Warum funktioniert das?
Beide Objekte nutzen denselben Code, haben aber eigene Feldwerte. Die Methode beschreibung() greift auf den Zustand des jeweiligen Objekts zu.
Aktiv-Check
Teste dein Verständnis
Erkennen: Welcher Abschnitt passt?
Welcher Abschnitt passt zu diesen Begriffen?
Spaßprojekt
Haustier-Simulator
Modelliere ein Haustier mit Name, Hunger und einer Methode füttern(). Erzeuge zwei Tiere und füttere nur eines.
Selbstcheck
Kann ich das schon?
Hake ab, was du wirklich erklären oder selbst bauen könntest.
Fortschritt
Bereit zum Abschließen?
Markiere die Lektion als abgeschlossen, um XP und Streak zu erhalten.