- 4 Abschnitte
- 15 Lektionen
- Um den Kurs in deinem Profil zu hinterlegen klicke oben auf Starten
- Einführung in Java4
- Java für Anfänger4
- Objektorientierte Grundlagen5
- Übungen & Test3
Klassen und Objekte
Bisher hast du Programme geschrieben, die Daten mit Variablen speichern, Entscheidungen treffen und Schleifen ausführen.
Das reicht für kleine Programme, wird aber schnell unübersichtlich, wenn du viele Daten oder komplexe Zusammenhänge darstellen willst.
Ein Beispiel:
String name1 = "Ava";
int alter1 = 4;
String name2 = "Balu";
int alter2 = 2;
Wenn du jetzt willst, dass alle Hunde bellen, müsstest du für jeden einzeln Code schreiben.
Das ist fehleranfällig und schlecht wartbar.
Die Lösung ist, Daten und Verhalten zu kapseln – und zwar in einer Klasse.
Grundidee der Objektorientierung
Ein Objekt ist eine Einheit aus Daten und Verhalten.
| Begriff | Beschreibung | Beispiel |
|---|---|---|
| Klasse | Der Bauplan oder die Vorlage für Objekte. | „Hund“ |
| Objekt | Eine konkrete Instanz der Klasse. | Ava (Hund) |
| Attribut | Eine Variable, die zum Objekt gehört (Eigenschaft). | name, alter |
| Methode | Eine Funktion, die das Verhalten des Objekts beschreibt. | bellen(), laufen() |
Eine einfache Klasse schreiben
public class Hund {
// Attribute (Eigenschaften)
String name;
int alter;
// Methode (Verhalten)
void bellen() {
System.out.println(name + " bellt: Wuff!");
}
}
Erklärung:
String name;undint alter;sind Felder oder Attribute der Klasse.
Jedes Objekt bekommt seine eigenen Werte dafür.void bellen()ist eine Methode, die etwas tut – hier eine Ausgabe erzeugt.
Ein Objekt erzeugen
Ein Objekt wird mit dem Schlüsselwort new erzeugt.
Dabei wird Speicherplatz reserviert, und der Rückgabewert ist eine Referenz auf das Objekt.
public class Main {
public static void main(String[] args) {
Hund h1 = new Hund(); // Objekt erzeugen
h1.name = "Ava"; // Attribute setzen
h1.alter = 4;
h1.bellen(); // Methode aufrufen
}
}
Ablauf Schritt für Schritt:
new Hund()erzeugt ein neues Objekt vom TypHund.h1ist eine Referenzvariable, die auf dieses Objekt zeigt.h1.name = "Ava";speichert den Namen im Objekt.h1.bellen();ruft die Methodebellen()auf – sie nutzt den aktuellenname.
Konsolenausgabe:
Ava bellt: Wuff!
Mehrere Objekte erzeugen
Jedes Objekt, das du mit new erzeugst, bekommt seine eigenen Daten.
Hund h1 = new Hund();
h1.name = "Ava";
h1.alter = 4;
Hund h2 = new Hund();
h2.name = "Balu";
h2.alter = 2;
h1.bellen();
h2.bellen();
Ausgabe:
Ava bellt: Wuff!
Balu bellt: Wuff!
Obwohl beide Hunde denselben Code (Bauplan) nutzen, haben sie ihre eigenen Zustände (Name, Alter).
So denkt Java intern
Wenn du schreibst:
Hund h1 = new Hund();
passiert Folgendes:
Java sucht die Klasse
Hund.Im Speicher wird Platz für alle Felder (
name,alter) reserviert.Eine Speicheradresse wird erzeugt.
Die Variable
h1speichert diese Adresse – sie zeigt auf das Objekt.
Wichtig:
h1ist nicht der Hund selbst, sondern nur eine Referenz auf ihn.
Mehrere Variablen können auf dasselbe Objekt zeigen.
Hund h2 = h1; // beide zeigen auf dasselbe Objekt
h2.name = "Rocky";
System.out.println(h1.name); // Ausgabe: Rocky
Zugriff auf Attribute und Methoden
Der Punktoperator . wird verwendet, um auf Attribute und Methoden zuzugreifen.
h1.name = "Ava"; // Schreibzugriff auf Attribut
System.out.println(h1.name); // Lesezugriff
h1.bellen(); // Methodenaufruf
Interaktive Visualisierung: Klasse und Objekte
Die folgende kleine Simulation zeigt, wie du mehrere Objekte der Klasse Hund erzeugst
und wie jedes Objekt seinen eigenen Zustand behält.
Interaktive Visualisierung: Klasse Hund
| Name | Alter |
|---|
– Ausgabe der Java-Konsole –
Häufige Anfängerfehler
| Fehler | Ursache | Erklärung |
|---|---|---|
NullPointerException | Methode aufgerufen, obwohl kein Objekt erzeugt wurde | Erst mit new instanzieren |
Cannot find symbol | Klasse oder Attribut falsch geschrieben | Namen exakt prüfen (Groß-/Kleinschreibung wichtig) |
| Felder werden nicht initialisiert | Keine Zuweisung erfolgt | Felder haben Standardwerte (0, false, null) – diese gezielt ändern |
| Zu viele gleichartige Variablen | Kein Objektkonzept genutzt | Klassen einführen, um Struktur zu schaffen |
Zusammenfassung
Eine Klasse ist der Bauplan – sie definiert, welche Daten (Attribute) und Funktionen (Methoden) ein Objekt besitzt.
Ein Objekt ist ein konkretes Exemplar einer Klasse, das im Speicher existiert.
Jedes Objekt hat seinen eigenen Zustand, aber denselben Bauplan.
Mit
newwird ein Objekt erzeugt, und über.greifst du auf Felder und Methoden zu.Das Konzept ist die Grundlage für Kapselung, Vererbung und Polymorphie.
