Felder in Java
Lege ein int-Feld namens fill in eine Klasse Cup in Cup.java. In Shelf.java baue einen Cup mit Cup c = new Cup();, speichere eine Zahl mit c.fill = 3;, und drucke dieses Feld mit System.out.println(c.fill);. Kompiliere beide Dateien und starte java Shelf. Der Bildschirm soll eine Zeile zeigen: 3. Das Feld hält Daten auf diesem einen Objekt. Du erreichst es über die Variable, die das Objekt benennt. Speichern und Lesen dieses Werts auf dem Objekt ist der Lehrstoff dieser Seite.
Ein Platz für Daten auf dem Objekt
Auf der Objektseite hat beep nur gedruckt. Es hat keine Zahl für später behalten. Ein Feld ist ein Name, der in der Klasse deklariert wird und in dem jedes Objekt seinen eigenen Wert halten kann. Nachdem new das Objekt gebaut hat, weist du das Feld über die Objektvariable zu und kannst es dann drucken.
Erstelle zuerst Cup.java. Die public-class-Zeile ist public class Cup. Lass keinen älteren Klassennamen Chip oder Badge hier. Innerhalb der geschweiften Klammern der Klasse schreibe eine Feldzeile: int fill;. In dieser ersten Box gibt es keine Methode. In Cup.java gibt es auf dieser Seite kein main. Speichere vor dem Kompilieren.
public class Cup {
int fill;
}
Shelf weist fill zu und druckt es
Erstelle Shelf.java im selben Ordner. Die public-class-Zeile ist public class Shelf. Innerhalb von main schreibe drei Zeilen in dieser Reihenfolge: Cup c = new Cup();, dann c.fill = 3;, dann System.out.println(c.fill);. Die erste Zeile baut das Objekt. Die zweite speichert 3 in fill dieses Objekts. Die dritte druckt die gespeicherte Zahl.
public class Shelf {
public static void main(String[] args) {
Cup c = new Cup();
c.fill = 3;
System.out.println(c.fill);
}
}
Aus dem Ordner mit beiden Dateien führe javac Cup.java Shelf.java aus. Du kannst Cup.java zuerst und Shelf.java danach kompilieren, wenn beide fertig sind. Wenn Klammern, geschweifte Klammern und Semikolons passen, schreibt javac keine eigene Zeile. Dann starte java Shelf — nicht java Shelf.java und nicht java Cup. Lass die Endung .java beim Startbefehl weg. Starte die Klasse, die main hält. Dieselben Befehle funktionieren unter Windows und macOS.
Das Programm soll eine Zeile drucken und stoppen: 3. Es soll nicht auf Eingabe warten. Wenn das Terminal auf Tastatur wartet, steckt noch ein nextLine-Aufruf aus einer älteren Übung in einer Datei. Lösche ihn und behalte die drei Zeilen oben in Shelf, mit dem Feld fill in Cup.
Geh den Lauf einmal durch. Java startet bei Shelf.main. new Cup() baut ein Objekt und speichert es in c. Die Zuweisung c.fill = 3 schreibt 3 in das Feld dieses Objekts. println(c.fill) liest dasselbe Feld und druckt 3. Die Zahl auf dem Bildschirm ist der Wert auf dem Objekt, kein fest eingetippter String wie "ok".
Der Feldname fill wird einmal in der Klasse deklariert. Jedes Objekt aus Cup bekommt seinen eigenen Platz für diesen Namen. Wenn du c.fill schreibst, nennst du zuerst das Objekt, dann den Platz auf diesem Objekt. Diese Reihenfolge — Objekt, dann Feld — ist die Form dieser Seite.
Klasse, Objekt und Feld nebeneinander
Lies die drei Namen einmal in einer kleinen Tabelle. Die Feldzeile läuft auf dieser Seite immer über ein Objekt.
📊 class object field
| Name | What it is on this page |
|---|---|
Cup |
the class / type in Cup.java |
c |
one object built with new Cup() |
c.fill |
the int stored on that object |
Cup.fill = 3; ohne Objekt passt nicht zu dieser Anfängerform. Das Feld gehört zu jedem Objekt nach new. Baue zuerst, dann weise über die Variable zu. Nur new Cup(); ohne Speichern des Ergebnisses lässt dir auch keinen Namen für fill. Behalte Cup c = new Cup(); dann c.fill = 3;.
Ein übrig gebliebenes Objektdemo kann den Ordner verwirren. Eine Datei, die noch c.beep(); mit einer Chip-Klasse aufruft, ist die vorherige Lektion. Für diese Seite behalte Cup und Shelf und das Feld fill. Du brauchst hier kein beep.
Wenn du c selbst mit System.out.println(c); druckst, zeigt der Bildschirm kein sauberes 3. Er druckt einen Standard-Objekttext. Um die gespeicherte Zahl zu sehen, drucke c.fill.
Zwei Cups behalten getrennte fills
Du kannst zwei Objekte aus Cup bauen. Jedes hat sein eigenes fill. Ändern des einen ändert das andere nicht.
In Shelf kannst du Cup a = new Cup(); und Cup b = new Cup(); schreiben, dann a.fill = 2; und b.fill = 9;, dann a.fill und b.fill drucken. Nach javac Cup.java Shelf.java und java Shelf soll der Bildschirm 2 in einer Zeile und 9 in der nächsten zeigen. Beide Objekte teilen den Klassentext, der fill deklariert, aber jedes Objekt hält seine eigene Zahl.
Wenn beide Drucke denselben Wert zeigen, obwohl du zwei verschiedene Zahlen meintest, prüfe, dass du beide Felder zugewiesen hast und nicht Cup b = a; geschrieben hast. Diese Zeile lässt b auf dasselbe Objekt wie a zeigen, sodass beide Namen ein fill teilen. Auf dieser Seite nutze zwei Ausdrücke new Cup(), wenn du zwei getrennte fills willst.
Du brauchst kein drittes Programmbox für diese Übung. Bearbeite Shelf sorgfältig, kompiliere neu und starte erneut. Danach kannst du die Ein-Cup-Box wiederherstellen, wenn du die erste Quizform willst.
Was Konstruktoren später hinzufügen
Diese Seite weist das Feld nach new mit einer eigenen Zeile zu: c.fill = 3;. Eine spätere Seite — Konstruktoren — zeigt einen anderen Weg, Startwerte zu setzen, wenn das Objekt gebaut wird. Bleib hier beim einfachen Feld und der Zuweisung nach new. Erfinde auf dieser Seite keine Konstruktormethode.
Standardwerte gibt es für Felder, die du nie zuweist: ein int-Feld startet bei 0. Wenn du c.fill vor jeder Zuweisung druckst, kann der Bildschirm 0 zeigen. Diese Seite lehrt trotzdem die Zuweisung, die du selbst schreibst, also behalte c.fill = 3; vor dem Druck im Hauptdemo.
Wenn javac beim Kompilieren von Shelf.java das Symbol Cup nicht findet, prüfe, dass Cup.java neben Shelf.java liegt und die Klassenzeile public class Cup ist. Wenn der Bildschirm 0 zeigt, obwohl du 3 erwartet hast, fehlt vielleicht die Zuweisungszeile oder sie läuft nach dem Druck — setze c.fill = 3; über println(c.fill).
Vor Konstruktoren
Du kannst int fill; in Cup deklarieren, Cup c = new Cup(); bauen, c.fill = 3; zuweisen und c.fill aus Shelf drucken. Kompiliere beide Dateien und starte java Shelf. Der Bildschirm zeigt 3. Zwei Objekte können zwei verschiedene fills halten. Die nächste Seite ist Konstruktoren, wo du Werte im Moment setzt, in dem new das Objekt baut.
🧠 Testen Sie Ihr Wissen
Testen Sie Ihr Wissen
Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen
📝 Anweisungen
- Lesen Sie jede Frage sorgfältig
- Wählen Sie die beste Antwort für jede Frage
- Sie können das Quiz so oft wiederholen, wie Sie möchten
- Ihr Fortschritt wird oben angezeigt