K (Vererbungs-Hierarchie)
K (Vererbungs-Hierarchie)
Zeile 10: Zeile 10:
 
* Schreibst du deine erste eigene Klasse
 
* Schreibst du deine erste eigene Klasse
  
== Vererbungs-Hierarchie ==
+
== 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>, welche von der Klasse <code>KREIS</code> erbt:
+
=== 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 ===
  
=== Koordinatensystem zeigen oder verbergen ===
+
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
Das Koordinatensystem
 

Version vom 5. Januar 2020, 22:20 Uhr


Dies ist ein Tutorial für die Edu-Variante der Engine Alpha 4.x. Eine Übersicht aller Edu-Tutorials siehst du hier.

Inhalt

In diesem Tutorial:

  • Lernst du die grundlegende Vererbungs-Hierarchie der Edu-Engine kennen
  • Schreibst du deine erste eigene Klasse

Vererbung

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.

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