v4.x/Vererbung: Unterschied zwischen den Versionen
Mike (Diskussion | Beiträge) K (→Vererbungs-Hierarchie) |
Mike (Diskussion | Beiträge) K (→Vererbungs-Hierarchie) |
||
Zeile 10: | Zeile 10: | ||
* Schreibst du deine erste eigene Klasse | * Schreibst du deine erste eigene Klasse | ||
− | == | + | == Vererbung == |
[[Datei:EduActor-Unterklassen.png|mini|Klassendiagramm der Vererbungs-Hierarchie: Unterklassen von EduActor und die Klasse Audio außerhalb dieser Hierarchie]] | [[Datei:EduActor-Unterklassen.png|mini|Klassendiagramm der Vererbungs-Hierarchie: Unterklassen von EduActor und die Klasse Audio außerhalb dieser Hierarchie]] | ||
Vererbung bedeutet beim Programmieren, man den Code eines anderen übernimmt und in einer "Ergänzungs-Datei" daran weiter arbeitest. Danach kann man auf alle Methoden der Oberklasse(n) zugreifen. Der Sinn ist, dass man z.B. zusätzliche Methoden erstellt oder auf vorgegebene Mechanismen (Mausklick, Tastendruck, ...) mit eigenem Code reagiert. Das nennt man dann ''überschreiben von Methoden''. Man sagt auch, die '''Unterklasse''' ''erweitert'' die '''Oberklasse'''. In JAVA erstellst du eine Unterklasse einer vorgegebenen Oberklasse indem du von dieser ''erbst''. | Vererbung bedeutet beim Programmieren, man den Code eines anderen übernimmt und in einer "Ergänzungs-Datei" daran weiter arbeitest. Danach kann man auf alle Methoden der Oberklasse(n) zugreifen. Der Sinn ist, dass man z.B. zusätzliche Methoden erstellt oder auf vorgegebene Mechanismen (Mausklick, Tastendruck, ...) mit eigenem Code reagiert. Das nennt man dann ''überschreiben von Methoden''. Man sagt auch, die '''Unterklasse''' ''erweitert'' die '''Oberklasse'''. In JAVA erstellst du eine Unterklasse einer vorgegebenen Oberklasse indem du von dieser ''erbst''. | ||
+ | |||
+ | === Vererbungs-Hierarchie der Grafik-Klassen === | ||
In der Edu-Engine gibt es bereits vorhandene Vererbung. So sind alle grafisch darstellbaren Klassen Unterklassen der Oberklasse <code>EduActor</code>. | In der Edu-Engine gibt es bereits vorhandene Vererbung. So sind alle grafisch darstellbaren Klassen Unterklassen der Oberklasse <code>EduActor</code>. | ||
Vererbung stellt man im ''Klassendiagramm'' durch einen '''Pfeil mit durchgezogener Linie und geschlossener Pfeilspitze''' dar. | Vererbung stellt man im ''Klassendiagramm'' durch einen '''Pfeil mit durchgezogener Linie und geschlossener Pfeilspitze''' dar. | ||
− | Erstelle in deiner Entwicklungsumgebung eine neue Klasse <code>Boden</code>, | + | === Erste eigene Unterklasse === |
+ | |||
+ | Erstelle in deiner Entwicklungsumgebung eine neue Klasse <code>Boden</code>, die von der Klasse <code>KREIS</code> erbt: | ||
<source lang="java"> | <source lang="java"> | ||
Zeile 35: | Zeile 39: | ||
Übersetze deine Klasse und erzeuge ein Objekt davon. Rufe einige Methoden auf, die du von KREIS geerbt hast und versichere dich, dass dein Ball nun alles hat zw. kann, was auch der KREIS hat bzw. kann. Du hast übrigens nicht nur von <code>KREIS</code> geerbt. Da <code>KREIS</code> wiederum von <code>EduActor</code> erbt, verfügt dein Objekt auch dessen Methoden wie z.B. <code>macheDynamisch()</code>. | Übersetze deine Klasse und erzeuge ein Objekt davon. Rufe einige Methoden auf, die du von KREIS geerbt hast und versichere dich, dass dein Ball nun alles hat zw. kann, was auch der KREIS hat bzw. kann. Du hast übrigens nicht nur von <code>KREIS</code> geerbt. Da <code>KREIS</code> wiederum von <code>EduActor</code> erbt, verfügt dein Objekt auch dessen Methoden wie z.B. <code>macheDynamisch()</code>. | ||
+ | === Konstruktor-Methode === | ||
− | + | Der Konstruktor einer Klasse ist eine Methode, die später die Objekte erzeugt. Du kennst die Konstruktoren bon <code>RECHTECK</code> und <code>KREIS</code> bereits. Du hast damit im vorigen Tutorial die Objekte erzeugt. In BlueJ hast du dazu mit rechts auf die Klassenkarte geklickt und z.B. <code>new Ball()</code> oder <code>new KREIS()</code> aufgerufen. | |
− | + | Bei deiner Klasse <code>Boden</code> hast du gerade einen Konstruktor benutzt, ohne einen geschrieben zu haben. BLueJ hat hier für dich stillschweigend den geerbten Konstruktor aufgerufen. In deinem eigenen Konstruktor kannst du aber selbst entscheiden, wie neue Objekte aussehen | |
− |
Version vom 5. Januar 2020, 21:20 Uhr
Dies ist ein Tutorial für die Edu-Variante der Engine Alpha 4.x. Eine Übersicht aller Edu-Tutorials siehst du hier.
Inhaltsverzeichnis
Inhalt
In diesem Tutorial:
- Lernst du die grundlegende Vererbungs-Hierarchie der Edu-Engine kennen
- Schreibst du deine erste eigene Klasse
Vererbung
Vererbung bedeutet beim Programmieren, man den Code eines anderen übernimmt und in einer "Ergänzungs-Datei" daran weiter arbeitest. Danach kann man auf alle Methoden der Oberklasse(n) zugreifen. Der Sinn ist, dass man z.B. zusätzliche Methoden erstellt oder auf vorgegebene Mechanismen (Mausklick, Tastendruck, ...) mit eigenem Code reagiert. Das nennt man dann überschreiben von Methoden. Man sagt auch, die Unterklasse erweitert die Oberklasse. In JAVA erstellst du eine Unterklasse einer vorgegebenen Oberklasse indem du von dieser erbst.
Vererbungs-Hierarchie der Grafik-Klassen
In der Edu-Engine gibt es bereits vorhandene Vererbung. So sind alle grafisch darstellbaren Klassen Unterklassen der Oberklasse EduActor
.
Vererbung stellt man im Klassendiagramm durch einen Pfeil mit durchgezogener Linie und geschlossener Pfeilspitze dar.
Erste eigene Unterklasse
Erstelle in deiner Entwicklungsumgebung eine neue Klasse Boden
, die von der Klasse KREIS
erbt:
public class Boden
extends KREIS
{
}
Mit public class
erstellst du ganz allgemein eine neue Klasse. Nach einem Leerzeichen folgt der Name der Klasse, den du frei wählen kannst.
extends
gibt an, dass diese Klasse von einer anderen Klasse (Oberklasse) erben soll. Nach einem Leerzeichen folgt der Exakte Name der Oberklasse. Hier ist Groß- und Kleinschreibung wichtig!
Innerhalb der geschweiften Klammern wirst du später deinen eigenen Code unterbringen.
Übersetze deine Klasse und erzeuge ein Objekt davon. Rufe einige Methoden auf, die du von KREIS geerbt hast und versichere dich, dass dein Ball nun alles hat zw. kann, was auch der KREIS hat bzw. kann. Du hast übrigens nicht nur von KREIS
geerbt. Da KREIS
wiederum von EduActor
erbt, verfügt dein Objekt auch dessen Methoden wie z.B. macheDynamisch()
.
Konstruktor-Methode
Der Konstruktor einer Klasse ist eine Methode, die später die Objekte erzeugt. Du kennst die Konstruktoren bon RECHTECK
und KREIS
bereits. Du hast damit im vorigen Tutorial die Objekte erzeugt. In BlueJ hast du dazu mit rechts auf die Klassenkarte geklickt und z.B. new Ball()
oder new KREIS()
aufgerufen.
Bei deiner Klasse Boden
hast du gerade einen Konstruktor benutzt, ohne einen geschrieben zu haben. BLueJ hat hier für dich stillschweigend den geerbten Konstruktor aufgerufen. In deinem eigenen Konstruktor kannst du aber selbst entscheiden, wie neue Objekte aussehen