Klassen in Java
Eine Klasse ist ein benannter Typ, den du in einer .java-Datei deklarierst. Lege public class Badge in eine Datei namens Badge.java. Innerhalb dieses Typs schreibe eine kurze static-Methode show, die ready druckt. In einer zweiten Datei namens Desk.java lege public class Desk mit einem main an, das Badge.show(); aufruft. Kompiliere beide Dateien, dann starte java Desk. Der Bildschirm soll eine Zeile zeigen: ready. Hier zählst du nicht mit Rekursion herunter. Du benennst einen Typ in seiner eigenen Datei und lässt dessen Methode drucken. Genau dieser zweite benannte Typ — eine Klasse, die nicht nur die Startdatei ist — ist der Lehrstoff dieser Seite.
Der Typ lebt in seiner eigenen Datei
Bis zu den Methodenseiten hielten fast alle Demos main und die Hilfsmethoden in einer public class. Das funktioniert weiter. Diese Seite fügt absichtlich eine zweite public class hinzu. Badge ist ein Typname. Er muss nicht das Programm sein, das startet. Desk ist das Programm, das startet. Jede public class sitzt in einer Datei, deren Name exakt dem Klassennamen entspricht, inklusive Großbuchstaben.
Erstelle zuerst Badge.java. Die erste Zeile des Typs ist public class Badge. Schreibe in dieser Datei kein public class Desk. Lass hier keinen alten Klassennamen Ladder oder Gate. Der Compiler bindet den public-class-Namen an den Dateinamen. Ist die Datei Badge.java und die Zeile sagt public class Ladder, lehnt javac ab.
Innerhalb der geschweiften Klammern von Badge schreibe static void show(). Der Rumpf ist ein Druck: System.out.println("ready");. Behalte void auf dieser Seite. Die Methode gibt keine Zahl zurück. Sie schreibt nur ein Wort. In Badge.java gibt es auf dieser Seite kein main. Das ist Absicht. Eine Klasse kann Methoden halten, ohne die Startklasse zu sein.
Speichere Badge.java vor dem Kompilieren. Das erste Kastenprogramm ist genau diese Datei allein.
public class Badge {
static void show() {
System.out.println("ready");
}
}
Desk startet; Badge druckt
Erstelle eine zweite Datei im selben Ordner: Desk.java. Ihre public-class-Zeile ist public class Desk. Innerhalb von main schreibe einen Aufruf: Badge.show();. Dieser Aufruf nennt den Typ Badge, einen Punkt, dann die Methode show. Du schreibst in Desk nicht allein show();, es sei denn, show lebt auch in Desk. Auf dieser Seite gehört show zu Badge, deshalb trägt der Aufruf den Typnamen.
public class Desk {
public static void main(String[] args) {
Badge.show();
}
}
Beide Dateien sollen im selben Ordner liegen, damit javac sie zusammen sieht. Aus diesem Ordner führe javac Badge.java Desk.java aus. Du kannst auch zuerst Badge.java und dann Desk.java kompilieren; beide Reihenfolgen funktionieren, wenn die Dateien fertig sind. Wenn Klammern, geschweifte Klammern und Semikolons passen, schreibt javac keine eigene Zeile. Dann starte java Desk — nicht java Desk.java und nicht java Badge. Lass die Endung .java beim Startbefehl weg. Starte die Klasse, die main hält. Dieselben beiden Befehlsarten funktionieren unter Windows und macOS.
Das Programm soll eine Zeile drucken und stoppen: ready. Es soll nicht auf Tastatureingabe warten. Wenn das Terminal auf Eingabe wartet, steckt noch ein nextLine-Aufruf aus einer älteren Übung in einer Datei. Lösche ihn und behalte Badge.show(); in Desk plus die Methode show in Badge.
Geh den Lauf einmal durch. Java startet bei Desk.main. Der Aufruf Badge.show() betritt die Methode im Typ Badge. Diese Methode druckt ready und kehrt zurück. Dann endet Desk. Das Wort auf dem Bildschirm kam von Badge, nicht von einem println in Desk selbst. Diese Trennung ist der Punkt: eine Klasse startet das Programm; eine andere Klasse besitzt die Hilfe.
Dateiname und public class müssen passen
Lies die Paarung einmal in einer kleinen Tabelle. Jede public class besitzt einen Dateinamen.
📊 file, public class, role
| Datei | public class | Rolle auf dieser Seite |
|---|---|---|
Badge.java |
Badge |
Typ, der show hält |
Desk.java |
Desk |
Programm, das main hält |
Wenn du die Datei in badge.java mit kleinem b umbenennst, während die Zeile noch public class Badge sagt, behandeln manche Systeme den Bruch als Fehler. Behalte das große B an beiden Stellen in dieser Anfängerform. Wenn du public class Badge und public class Desk in dieselbe Datei legst, lehnt javac ab: eine public class pro Datei. Private Hilfsklassen in derselben Datei warten auf spätere Kurse. Hier hältst du zwei public Dateien.
Ein häufiger Fehler ist java Badge zu starten, weil du gerade Badge.java geschrieben hast. Diese Klasse hat auf dieser Seite kein main, daher startet der Lauf nicht. Starte java Desk. Ein anderer Fehler ist show(); in Desk ohne Präfix Badge., wenn show nur auf Badge existiert. Der Compiler sucht dann show in Desk und findet es nicht.
Übrig gebliebene Rekursionsdemos können den Ordner verwirren. Eine Datei, die noch Ladder.java heißt und down(3) enthält, ist ein anderes Programm. Halte den Ordner dieser Lektion auf Badge.java und Desk.java, während du die Zwei-Datei-Form lernst. Du brauchst hier kein down.
Zuerst den Typ kompilieren, dann den Starter
Du kannst den Compile-Schritt in kleineren Teilen üben. Kompiliere zuerst nur den Typ: javac Badge.java. Dieser Befehl prüft Badge, auch wenn noch nichts gestartet hat. Eine Klassendatei kann ohne main kompilieren. Dann kompiliere den Starter: javac Desk.java. Wenn Badge im selben Ordner schon kompiliert ist, kann Desk den Namen Badge im Aufruf auflösen. Starte zuletzt java Desk und bestätige die eine Zeile ready.
Wenn javac Desk.java sagt, das Symbol Badge fehle, prüfe drei Dinge. Der Ordner muss Badge.java oder die kompilierte Klasse Badge neben Desk.java halten. Der Aufruf muss Badge mit denselben Großbuchstaben wie der Typ schreiben. Der Methodenname nach dem Punkt muss show sein, passend zum Kopf in Badge.
System.out.println("Badge"); in Desk druckt das Wort Badge. Es ruft die Methode am Typ nicht auf. Behalte Badge.show();, wenn du den Druck sehen willst, der in Badge liegt.
Was diese Seite noch nicht tut
Diese Seite schreibt kein new Badge(). Ein Objekt aus einer Klasse zu bauen ist die nächste Seite. Hier ist der Aufruf Badge.show() — eine static-Methode am Typnamen selbst. Du speicherst auch noch keine Felder auf einem Badge. Felder warten auf eine spätere Seite in diesem Modul. Die Aufgabe jetzt ist nur der benannte Typ in eigener Datei, die passende public-class-Zeile und ein Aufruf, der diesen Typnamen nutzt.
Du kannst das gedruckte Wort in show auf set ändern und beide Dateien neu kompilieren (oder mindestens Badge.java, dann Desk erneut starten). Der Bildschirm soll dem String folgen, den du in Badge gesetzt hast. Desk behält denselben Aufruf. So siehst du die Trennung noch einmal: Methode des Typs ändern, Aufruf des Starters behalten.
Vor objects
Du kannst public class Badge in Badge.java deklarieren, static void show() hineinlegen und aus Desk.main Badge.show(); aufrufen. Dateiname und public-class-Name passen. Kompiliere Typ und Starter, dann starte java Desk. Der Bildschirm zeigt die Zeile, die show druckt. Eine Klasse ist dieser benannte Typ. Die nächste Seite ist objects; dort baust du mit new einen Wert aus einer Klasse.
🧠 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