Dein Code aus Eclipse, in kleine Stücke zerlegt. Du klickst, probierst aus und siehst sofort, was im Objekt passiert. Du brauchst kein Vorwissen.
Das ist dein Code aus dem Screenshot. Klick links auf eine Zeile, rechts steht die Erklärung dazu.
Tipp: Die Pfeiltasten und die Tab-Taste funktionieren auch, jede Zeile ist ein Knopf.
Eine Klasse ist ein Bauplan. Sie beschreibt, welche Eigenschaften ein Tier hat und was es kann. Ein Objekt ist ein echtes Tier, das nach diesem Plan gebaut wurde. Aus einem Bauplan kannst du beliebig viele Objekte bauen, jedes hat seine eigenen Werte.
Klasse
Bauplan „Tier“
Es gibt einen Namen und ein Gewicht.
Objekte
Leo, 190 kg
Dumbo, 4500 kg
Probier es aus. Trag Werte ein und baue ein Objekt. Lass beide Felder leer, dann siehst du, was Java als Startwert nimmt.
new Tier() baut das Objekt. Tier t1 ist der Name, unter dem du es ansprichst. Ohne Werte ist der Name null (nichts) und das Gewicht 0.0.
public class Tier {
//Attribute
private String name;
private float gewicht;
}
Jede Zeile hat drei Teile: Sichtbarkeit, Datentyp und Name.
| Teil | Beispiel | Bedeutung |
|---|---|---|
| Sichtbarkeit | private | Nur Code innerhalb der Klasse Tier darf direkt darauf zugreifen. |
| Datentyp | String | Text, zum Beispiel "Leo". Immer in Anführungszeichen. |
| Datentyp | float | Kommazahl, zum Beispiel 190.5f. Das f am Ende gehört zu float-Zahlen mit Komma. |
| Name | gewicht | Wie du das Attribut im Code nennst. Klein geschrieben. |
Prüfungsfalle: String schreibt man groß, float klein. String ist eine Klasse, float ist ein einfacher Datentyp.
frisspublic float friss(float menge) {
this.gewicht = this.gewicht + menge;
return this.gewicht;
}
Eine Methode ist eine Fähigkeit des Objekts. Der Kopf verrät dir alles Wichtige:
public | Von außen aufrufbar. |
float (vorne) | Die Methode gibt eine Kommazahl zurück. |
friss | Name der Methode. |
(float menge) | Sie braucht beim Aufruf eine Zahl. Diese heißt innen menge. |
Stell Gewicht und Menge ein und schau, was Zeile für Zeile passiert.
return schickt einen Wert an den zurück, der die Methode aufgerufen hat. Das Gewicht wird auch ohne return geändert. Das Ergebnis darfst du beim Aufruf ignorieren.
Die Attribute sind private. Von außen kommst du nicht direkt dran. Deshalb gibt es zwei Arten von Türen:
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
Der Getter hat einen Rückgabetyp (String) und keine Parameter. Der Setter hat void (gibt nichts zurück) und einen Parameter. Für gewicht gibt es dasselbe Paar: getGewicht() und setGewicht(...).
Hier ist ein Tier-Objekt t. Rufe die Methoden auf und beobachte die Konsole. Versuche auch den direkten Zugriff.
Warum der Umweg? Die Klasse bestimmt, was mit ihren Daten passiert. In einen Setter kannst du später Prüfungen einbauen, zum Beispiel „Gewicht darf nicht negativ sein“. Das nennt man Kapselung, ein beliebtes Prüfungsthema.
this?Im Setter heißen das Attribut und der Parameter gleich: name. Java muss wissen, welches gemeint ist. this.name ist das Attribut des Objekts. Ein einzelnes name ist der Parameter, der zuletzt deklariert wurde.
Ohne this weist der Parameter sich selbst zu: Er bekommt seinen eigenen Wert. Das Attribut bleibt unverändert. Eclipse zeigt dafür oft eine Warnung. Der Code läuft trotzdem, deshalb ist der Fehler schwer zu finden.
In friss steht this.gewicht auch auf beiden Seiten. Das ist nicht nötig, weil es dort keinen Parameter namens gewicht gibt. Es schadet aber nicht und macht klar: Das ist das Gewicht dieses Tieres.
Deine zweite Datei heißt Tierpark.java. Dort steht die main-Methode, mit der das Programm startet. So könnte sie aussehen:
package prüfungsVB;
public class Tierpark {
public static void main(String[] args) {
Tier t = new Tier(); // 1
t.setName("Leo"); // 2
t.setGewicht(190); // 3
t.friss(10); // 4
System.out.println(t.getName() + " wiegt " + t.getGewicht() + " kg"); // 5
}
}
| Zeile | Was passiert | name | gewicht |
|---|---|---|---|
| 1 | Neues Tier-Objekt, noch leer | null | 0.0 |
| 2 | Name wird gesetzt | "Leo" | 0.0 |
| 3 | Gewicht wird gesetzt | "Leo" | 190.0 |
| 4 | Leo frisst 10: 190 + 10 | "Leo" | 200.0 |
| 5 | Ausgabe in der Konsole | Leo wiegt 200.0 kg | |
Prüfungsfalle: Zahlen mit Komma sind in Java standardmäßig double. t.friss(2.5) gibt einen Fehler, weil die Methode float erwartet. Schreib t.friss(2.5f). Ganze Zahlen wie friss(10) passen immer.
Die Aufgaben folgen deinem Code von oben nach unten: Die ersten zehn bauen die Klasse Tier Stück für Stück nach (Zeile 1 bis 29). Danach wird es schwerer. Schreib den Java-Code selbst in die Felder. Die Prüfung ignoriert Leerzeichen, Zeilenumbrüche und Kommentare. Auf Groß- und Kleinschreibung, Semikolons und Klammern kommt es an. Wenn deine Lösung anders aussieht als die Musterlösung, aber funktioniert, ist das in Ordnung. Vergleiche dann beide.
Sechs Fragen. Wähle je eine Antwort und prüfe dich.