CodeGym /Kurse /Java Syntax /Erstklassige Klassen

Erstklassige Klassen

Java Syntax
Level 5 , Lektion 1
Verfügbar

„Hi, Amigo!“

„Hi, Ellie!“

„Heute werde ich dir viel über Klassen in Java erzählen.“

Erklärung Nr. 1. Ich beginne mit einer Analogie. Alle Dinge in der materiellen Welt bestehen aus Atomen. Es gibt verschiedene Arten von Atomen: Wasserstoff, Sauerstoff, Eisen, Uran… Verbindungen dieser Atome bilden verschiedene Moleküle, Substanzen und Objekte.“

„Diese Atome haben verschiedene innere Strukturen, wie Elektronen und einen Kern aus Protonen und Neutronen.“

„Ja, ich weiß ein bisschen was über die Struktur von Atomen. Ich bin schließlich ein Roboter!“

„Die Welt von Java ist ähnlich aufgebaut. Programme bestehen aus verschiedenen Arten von Objekten (Klassen). Verschiedene Klassen wiederum enthalten unterschiedliche innere Strukturen (Variablen und Methoden).“

„Wenn wir ein Programm als Ganzes betrachten, dann sind seine Grundbausteine Objekte. Klassen sind die Arten dieser Bausteine. Mit anderen Worten: Verschiedene Arten von Bausteinen sind Objekte verschiedener Klassen.

„Ich glaube, das verstehe ich.“

Erklärung Nr. 2. Wenn wir eine neue Objektart benötigen, erstellen wir eine neue Klasse und definieren das Verhalten ihrer inneren Objekte.

„Das klingt etwas zu allgemein. Es scheint klar zu sein, aber du hast nichts Konkretes gesagt.“

„In Bezug auf die innere Struktur besteht eine Klasse aus Methoden, die etwas tun, und Variablen, die von den Methoden zum Speichern von Daten verwendet werden.

„Also könnte man auch einfacher sagen, dass eine Klasse eine Reihe von Methoden ist?“

„Fast. Genauer gesagt ist eine Klasse eine Gruppe von verwandten Methoden und gemeinsamen Variablen, die von diesen Methoden verwendet werden, um verschiedene Werte zu speichern.“

„Ach so. Um eine neue Klasse zu erstellen, müssen wir zuerst diese Methoden schreiben…“

„Ja. Und wir müssen außerdem entscheiden, welche Variablen verschiedene Methoden gemeinsam nutzen sollen. Wir ziehen diese Variablen aus den Methoden heraus und setzen sie in die Klasse, d.h. wir verwandeln lokale Variablen in Instanzvariablen (Member-Variablen).“

„Grundsätzlich wird eine Klasse wie folgt erstellt:

1. Die Programmiererin entscheidet, welche anderen Objekte sie benötigt.

2. Die Programmiererin unterteilt diese Objekte in verschiedene Typen, je nachdem, was sie tun sollen.

3. Die Programmiererin schreibt für jeden Typ eine eigene Klasse.

4. In einer Klasse deklariert sie die benötigten Methoden und Variablen.

5. In jeder Methode schreibt sie Befehle, damit die Methode das tut, was sie tun soll.

6. Die Klasse ist bereit. Jetzt kannst du Objekte dieser Klasse anlegen.“

„Cool! Was für ein interessantes Muster! Das darf ich nicht vergessen.“

„Merke es dir gut. Es wird sehr nützlich sein. Die Programmierphilosophie, nach der ein Programm in Objekte unterteilt wird, wird als objektorientierte Programmierung (OOP) bezeichnet.“

„Java ist ein klassisches Beispiel für eine OOP-Sprache: In Java ist alles ein Objekt.“

„Das Erlernen von Java besteht aus zwei wesentlichen Aufgaben: lernen, wie man eigene Klassen schreibt, und lernen, wie man die Klassen anderer Leute benutzt. Heute beginnen wir mit dem einfacheren. Wir werden lernen, wie man die einfachsten Klassen schreibt, und natürlich, wie man Objekte dieser Klassen erstellt. Objekte werden auch oft als „Instanzen“ einer Klasse bezeichnet. Das sind Synonyme; beide Ausdrücke sind korrekt.“

„Alles klar.“

„Zusammenfassend können wir sagen, dass eine Klasse ein Mini-Programm ist: ein paar Daten sowie Funktionen, die diese Daten nutzen, um etwas zu tun. Klassen werden verwendet, um Instanzen von Klassen zu erzeugen, die auch als Objekte bezeichnet werden.

„Wenn du ein Objekt erstellen willst, schreibe ‚new class_name()‘ in den Code. Hier ein paar Beispiele:“

Beispiele
Cat cat = new Cat();
Reader reader = new BufferedReader(new InputStreamReader(System.in));
InputStream is = new FileInputStream(path);

„Ein Objekt hat zwei interessante Eigenschaften:“

Erstens: Jedes Objekt speichert seine eigene Kopie der Instanzvariablen. Das bedeutet, wenn die Instanzvariablen x und y in einer Klasse deklariert wurden und 10 Objekte dieser Klasse angelegt wurden, dann besitzt jedes Objekt seine eigenen Variablen. Das Verändern der Variablen in einem Objekt hat keinen Einfluss auf die Variablen in einem anderen Objekt.

Zweitens: Beim Erstellen von Objekten kannst du verschiedene Parameter übergeben. Diese Werte werden dann zur Initialisierung des Objekts verwendet. Das ist ein bisschen wie bei der Benennung eines Neugeborenen. Viele Klassen setzen solche Parameter voraus, wenn du Instanzen (Objekte) der Klasse anlegen möchtest.

„Das verstehe ich. Was hast du über Instanzvariablen gesagt?“

„Jedes Objekt besitzt seine eigenen Daten. Das sind die Instanzvariablen.“

Java-Code Bildschirmausgabe:
Cat cat1 = new Cat();
cat1.name =  "Oscar";

Cat cat2 = new Cat();
cat2.name = "Smudge";

System.out.println(cat1.name);
System.out.println(cat2.name);
Oscar
Mailo
Kommentare (8)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Maxim Chipelik Level 13, Germany
13 August 2024
Wieso kommt bei dem letzten Beispiel bei cat2.name Mailo und nicht Smudge raus
Hariboto Level 7, Dresden, Germany
13 Februar 2023
Nice, dass hier auch mal Programmiererinnen adressiert werden.
Queen/サマキ Level 13, Germany, Germany
14 Juni 2023
Finde ich auch, hat mich positiv überrascht.
Fohli Level 2, Germany, Germany
11 März 2024
Aber dafür werden die Pogrammierer nich adressiert.... Man kann auch von beiden Seiten vom Pferd fallen; mir wäre ja lieber wenn man beim Generischen Maskulinum bliebe....
DigitalNomad Level 7, Germany
10 Januar 2025
Sollte es nicht klar sein, dass immer alle Geschlechter gemeint sind. Gendern verhässlicht die Sprache. Die männliche Form wird als Universalform wahrgenommen, aber die weibliche exkludiert Männer.
14 Oktober 2022
Diese Lektion hätte auch an einer früheren Stelle im Kurs vorkommen können.
Marcellus Level 6, Denmark
5 Januar 2023
danke
Florian Winkler Level 9, Austria Expert
16 Juli 2023
Ja schon , fand es aber gut es hier nach den ganzen Übungen erklärt zu bekommen. Denk, hier hat man die Erfahrung, um das geschriebene auch zu verstehen. Und vermutlich kommen ballt Aufgaben, wo man mit Objekten mehr herum Jonglieren muss.