Felder
Lege ein int-Feld namens fill in die Klasse Cup. In Pine behalte Main und baue einen Cup mit Cup c = new Cup();, speichere eine Zahl mit c.fill = 3;, dann schreibe dieses Feld mit Console.WriteLine(c.fill);. Halte beide Typen in derselben Lehrdatei, damit dotnet run einfach bleibt. Starte mit dotnet run. Der Bildschirm sollte 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 das Lehrziel dieser Seite. Behalte den öffentlichen Startklassennamen Pine.
Ein Platz für Daten auf dem Objekt
Auf der Objekte-Seite hat beep nur geschrieben. Es hat keine Zahl für später behalten. Ein Feld ist ein Name, den du in der Klasse deklarierst und in dem jedes Objekt seinen eigenen Wert halten kann. Nachdem new das Objekt gebaut hat, setzt du das Feld über die Objektvariable und kannst es danach auf den Bildschirm schreiben.
Öffne die Pine-Datei. Der Startklassenname bleibt Pine. Diese Seite benennt den Starter nicht um. Lösche jeden übrig gebliebenen c.beep();-Aufruf, falls dieser Chip-Aufruf noch alles ist, was in Main steht. Lösche jede übrig gebliebene Chip-Klasse. Lösche jede ReadLine-Zeile. Die Datei, die du behältst, wartet nicht auf Tippen.
Außerhalb der geschweiften Klammern von Pine — noch in derselben Datei — schreibe public class Cup. Innerhalb der Klassenklammern schreibe eine Feldzeile: int fill;. In dieser ersten Box gibt es keine Methode. In Cup gibt es auf dieser Seite kein Main. Speichere die Datei vor dem Lauf.
Das erste Programm in der Box zeigt Cup allein, damit du das Feld klar liest. Das zweite Programm in der Box ist die behaltene Form, in der Pine fill setzt und schreibt.
using System;
public class Cup
{
int fill;
}
Pine setzt fill und schreibt es danach
Pine behält public static void Main(). Innerhalb von Main schreibe drei Zeilen der Reihe nach: Cup c = new Cup();, dann c.fill = 3;, dann Console.WriteLine(c.fill);. Die erste Zeile baut das Objekt. Die zweite speichert 3 im fill dieses Objekts. Die dritte schreibt die gespeicherte Zahl. Auf dieser Seite rufst du nicht c.beep(); auf. Das war die Objekte-Lektion.
using System;
public class Pine
{
public static void Main()
{
Cup c = new Cup();
c.fill = 3;
Console.WriteLine(c.fill);
}
}
public class Cup
{
int fill;
}
Lies die behaltene Datei von oben. using System; bereitet kurze Namen vor. public class Pine ist der Starter. public static void Main() ist der Einstieg der Laufzeit. new Cup() baut ein Objekt und speichert es in c. Die Zuweisung c.fill = 3 schreibt 3 in das Feld dieses Objekts. WriteLine(c.fill) liest dasselbe Feld und schreibt 3. Die Zahl auf dem Bildschirm ist der auf dem Objekt gespeicherte Wert, kein fest verdrahteter String wie "ok".
Führe es mit dotnet run aus. Das Programm schreibt eine Zeile und stoppt. Es wartet nicht auf deine Eingabe. Wenn dotnet run wartet, steckt ReadLine noch in der Datei. Lösche diese Zeile und behalte die drei Zeilen oben in Pine, mit dem fill-Feld in Cup. Der Bildschirm zeigt 3. Zeigt der Bildschirm ok, läuft noch ein übrig gebliebener c.beep();-Aufruf. Zeigt der Bildschirm die Buchstaben Cup, hat eine Schreibzeile Anführungszeichen: Console.WriteLine("Cup");. Installiere das .NET SDK nicht neu wegen eines Bildschirms mit der falschen Zeile.
Geh den Lauf noch einmal der Reihe nach durch. C# startet bei Pine.Main. Die erste Anweisung baut mit new Cup() ein Objekt und speichert es in c. Die zweite speichert 3 in c.fill. Die dritte schreibt dieses Feld. Dann endet Main. Der Feldname fill ist einmal in der Klasse deklariert. Jedes aus Cup gebaute Objekt bekommt seinen eigenen Platz für diesen Namen. Wenn du c.fill schreibst, benennst 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 beside Pine |
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 nach new zu jedem Objekt. Baue zuerst, dann weise über die Variable zu. Nur new Cup(); ohne Speichern des Ergebnisses lässt dich auch ohne Namen für fill. Behalte Cup c = new Cup(); dann c.fill = 3;.
Ein übrig gebliebener Objekte-Demo kann Main verwirren. Eine Datei, die noch c.beep(); mit einer Chip-Klasse aufruft, ist die vorherige Lektion. Für diese Seite behalte Cup und Pine und das fill-Feld. Du brauchst hier kein beep.
Schreibst du allein Console.WriteLine(c);, zeigt der Bildschirm kein sauberes 3. Er druckt einen Standard-Objekttext. Um die gespeicherte Zahl zu sehen, schreibe Console.WriteLine(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 Pine 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 ausgeben. Nach dotnet run sollte 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.
Zeigen beide Ausgaben denselben Wert, obwohl du zwei verschiedene Zahlen wolltest, prüfe, ob du beide Felder gesetzt hast und ob du 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 new Cup()-Ausdrücke, wenn du zwei getrennte fills willst.
Du brauchst dafür kein drittes Programm in der Box. Bearbeite Pine sorgfältig und starte erneut. Danach kannst du die Ein-Cup-Box wiederherstellen, wenn du die erste Quiz-Form willst.
Was Konstruktoren später hinzufügen
Diese Seite setzt das Feld nach new mit einer eigenen Zeile: c.fill = 3;. Eine spätere Seite — Konstruktoren — zeigt einen anderen Weg, Startwerte zu setzen, wenn das Objekt gebaut wird. Bleibe hier beim einfachen Feld und der Zuweisung nach new. Erfinde auf dieser Seite keine Konstruktor-Methode.
Für Felder, die du nie setzt, gibt es Standardwerte: ein int-Feld startet bei 0. Schreibst du c.fill vor jeder Zuweisung, kann der Bildschirm 0 zeigen. Diese Seite lehrt weiterhin die Zuweisung, die du selbst schreibst — behalte also c.fill = 3; vor dem Schreiben im Hauptdemo.
Verschachtele Cup nicht in den Klammern von Pine. Auf dieser Seite sitzen die beiden Klassen als Geschwister in der Datei. Das Feld sitzt in Cup. Main sitzt in Pine. Wenn der Build Cup beim Kompilieren von Pine nicht findet, prüfe, ob public class Cup in derselben Datei steht. Zeigt der Bildschirm 0, obwohl du 3 erwartest, fehlt die Zuweisungszeile oder sie läuft nach dem Schreiben — setze c.fill = 3; über Console.WriteLine(c.fill);.
Du kannst int fill; in Cup deklarieren, Cup c = new Cup(); bauen, c.fill = 3; setzen und c.fill aus Pine.Main schreiben. Starte mit dotnet run. Der Bildschirm zeigt 3. Zwei Objekte können zwei verschiedene fills halten. Denk an fill als beschrifteten Platz auf jedem Cup, den du mit new baust. Pine bleibt die Tür, die du mit dotnet run öffnest. Die nächste Seite sind 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