ein kleines Beispielein kleines Beispiel
Klassendefinitionen in Java
Klassendefinitionen in Java
Das ist ein JabberwockyDas ist ein
Jabberwocky
Das ist ein Frühstück
Das ist ein Frühstück
Die Klasse JabberwockyDie Klasse Jabberwocky
Der Name der KlasseDer Name der Klasse
Die Variablen der Klasse
Die Variablen der Klasse}}
Der Konstruktor der KlasseDer Konstruktor der Klasse
Klasse JabberwockyKlasse Jabberwocky
+ zaehne : int+ zaehne : int
+ hungrig : boolean+ hungrig : boolean
+ laune : int+ laune : int
+ farbe : int+ farbe : int
<< Konstruktor >><< Konstruktor >>+ Jabberwocky(Color f, int
z )+ Jabberwocky(Color f, int
z )<< Methoden >><< Methoden >>+ bauernfressen ( int x )+ bauernfressen ( int x )
+ zahnverlieren ( )+ zahnverlieren ( )
+ launewechseln ( int y )+ launewechseln ( int y )
Der Methoden der Klasse
Der Methoden der Klasse}}
Die Klasse JabberwockyDie Klasse Jabberwocky
Im Javaprogramm:
Jabberwocky Karl, Erwin; // zwei Drachen !!.....Karl = new Jabberwocky(Color.yellow,12);
...
Im Javaprogramm:
Jabberwocky Karl, Erwin; // zwei Drachen !!.....Karl = new Jabberwocky(Color.yellow,12);
...
Nun existiert Karl - er ist gelb und hat 12 ZähneNun existiert Karl - er ist gelb und hat 12 Zähne
und es existiert Erwin - er ist grün und hat 23 Zähne
und es existiert Erwin - er ist grün und hat 23 Zähne
Die Klasse JabberwockyDie Klasse JabberwockyKlasse
JabberwockyKlasse
Jabberwocky+ zaehne : int+ zaehne : int
+ hungrig : boolean+ hungrig : boolean
+ laune : int+ laune : int
+ farbe : int+ farbe : int
<< Konstruktor >><< Konstruktor >>
+Jabberwocky(Color f, int z)
+Jabberwocky(Color f, int z)
<< Methoden >><< Methoden >>
+ bauernfressen ( int x )+ bauernfressen ( int x )
+ zahnverlieren ( )+ zahnverlieren ( )
+ launewechseln ( int y )+ launewechseln ( int y )Erwin = new Jabberwocky(Color.green,23);Erwin = new Jabberwocky(Color.green,23);
Die Klassendefiniton in Java:class Jabberwocky{int zaehne;boolean hungrig;int laune; // je größer die Zahl, desto besser die LauneColor farbe;
//********************** Konstruktor *********
public Jabberwocky (Color f, int z){
farbe=f; // Farbe, die bei new Jabberwocky angegeben war
zaehne=z; // hole die Zahnzahl}//********************** Methoden *********public void bauernfressen ( int x ){ laune = laune + x; // mit jedem Bauern wird die Laune besser}................... // und so weiter ....
Die Klasse JabberwockyDie Klasse Jabberwocky
Klasse Jabberwocky
Klasse Jabberwocky
+ zaehne : int+ zaehne : int
+ hungrig : boolean+ hungrig : boolean
+ laune : int+ laune : int
+ farbe : int+ farbe : int
<< Konstruktor >><< Konstruktor >>
+ Jabberwocky(Color f, int z )
+ Jabberwocky(Color f, int z )
<< Methoden >><< Methoden >>
+ bauernfressen ( int x )+ bauernfressen ( int x )
+ zahnverlieren ( )+ zahnverlieren ( )
+ launewechseln ( int y )+ launewechseln ( int y )
Und weiter im Javaprogramm..........// nun steht Erwin vor einigen Bauern ... was wird er tun ?if ( Erwin.laune <2 )
{ Erwin.hungrig = true;Erwin.bauernfressen(3);
// womit Erwins Laune um 3 Punkte steigtErwin.hungrig=false;// kein Hunger mehr
}.........// oder die beiden Drachen treffen sich:
if (( Erwin.laune <2 ) && (Karl.laune > 5)){
Erwin.farbe=Color.white; // er wird vor Neid ganz blass...
Karl.zaehne=Karl.zaehne - 5; // haut ihm 5 Zähne weg....Karl.laune=Karl.laune-12; //... das macht echt miese Stimmung
}
Die Klasse JabberwockyDie Klasse Jabberwocky
UML Unified Modeling Language UML Unified Modeling Language
AutoAuto
+ raeder : int+ raeder : int
+ leistung : int+ leistung : int
+ farbe : Color+ farbe : Color
- tachostand : int- tachostand : int
<< Konstruktor >><< Konstruktor >>
+ Auto (int r,int l, Color f )
+ Auto (int r,int l, Color f )<< Methoden >><< Methoden >>
+ starten ( )+ starten ( )
+ bremsen ( )+ bremsen ( )
+ ueberholen ( Moped m )+ ueberholen ( Moped m )
MopedMoped
+ raeder : int+ raeder : int
+ leistung : int+ leistung : int
+ farbe : Color+ farbe : Color
+ hubraum : int+ hubraum : int
<< Konstruktor >><< Konstruktor >>
+ Moped (int r, int l ,Color f )
+ Moped (int r, int l ,Color f )<< Methoden >><< Methoden >>
+ starten ( )+ starten ( )
+ bremsen ( )+ bremsen ( )
+ ueberholen ( Mofa m )+ ueberholen ( Mofa m )
MofaMofa
+ raeder : int+ raeder : int
+ leistung : int+ leistung : int
+ farbe : Color+ farbe : Color
<< Konstruktor >><< Konstruktor >>
+ Mofa (int r, int l, Color f )
+ Mofa (int r, int l, Color f )
<< Methoden >><< Methoden >>
+ starten ( )+ starten ( )
+ bremsen ( )+ bremsen ( )
meinAuto = new Auto (4,110,Color.red);
meinAuto = new Auto (4,110,Color.red);
ein neues Auto mit 4 Rädern, 110 PS und schön rot
ein neues Auto mit 4 Rädern, 110 PS und schön rot
meinMoped = new Moped (2,25,Color.green);
meinMoped = new Moped (2,25,Color.green);
ein neues Moped mit 2 Rädern, 25 PS und schön grün
ein neues Moped mit 2 Rädern, 25 PS und schön grün
meinMofa = new Mofa (2,5,Color.blue);
meinMofa = new Mofa (2,5,Color.blue);
ein neues Mofa mit 2 Rädern, 5 PS und schön blau
ein neues Mofa mit 2 Rädern, 5 PS und schön blau
Was würde wohl : meinAuto.ueberholen(deinMoped) sein ?
Was würde wohl : meinAuto.ueberholen(deinMoped) sein ?
UML Oberklassen und Vererbung UML Oberklassen und Vererbung
MopedMoped
+ hubraum : int+ hubraum : int
<< Konstruktor >><< Konstruktor >>
+ Moped (int r, int l, Color f )
+ Moped (int r, int l, Color f )
<< Methoden >><< Methoden >>
+ ueberholen ( Mofa m )+ ueberholen ( Mofa m )
AutoAuto
- tachostand : int- tachostand : int
<< Konstruktor >><< Konstruktor >>
+ Auto (int r, int l, Color f )
+ Auto (int r, int l, Color f )<< Methoden >><< Methoden >>
+ ueberholen ( Moped m )+ ueberholen ( Moped m )
KFZKFZ
+ raeder : int+ raeder : int
+ leistung : int+ leistung : int
+ farbe : Color+ farbe : Color
<< Konstruktor >><< Konstruktor >>
+ KFZ (int r, int l, Color f )
+ KFZ (int r, int l, Color f )<< Methoden >><< Methoden >>
+ starten ( )+ starten ( )
+ bremsen ( )+ bremsen ( )
Die OberklasseDie Oberklasse
Nur Attribute und Methoden, die speziell hier gebraucht werden, werden auch hier definiert.Nur Attribute und Methoden, die speziell hier gebraucht werden, werden auch hier definiert.
Die KlassenAuto, Moped und Mofa sind von KFZ “abgeleitet”.Es sind Unterklassen, die alle Attribute und Methoden der Oberklasse erben.
Die KlassenAuto, Moped und Mofa sind von KFZ “abgeleitet”.Es sind Unterklassen, die alle Attribute und Methoden der Oberklasse erben.
Vererbungspfeile
Vererbungspfeile
+ Mofa (int r, int l, Color f )
+ Mofa (int r, int l, Color f )<< Methoden >><< Methoden >>
MofaMofa
<< Konstruktor >><< Konstruktor >>
UML Oberklassen und Vererbung UML Oberklassen und Vererbung
Die Unterklassen ( Subklassen ) sollten / können einen eigenen Konstruktor haben.Mit dem Befehlswort “super” kann aber der Konstruktor der Oberklasse aufgerufen werden.z.B.
public Moped (int x, int y, Color f){ super(x,y,f ); }// Konstruktor der Klasse Moped
ruft des Konstruktor von KFZ auf und erzeugt dennoch ein neues Moped, wenn
meinMoped = new Moped(2,5,Color.blue);
benutzt wird.
Bei der Definition der Unterklasse wird nun deutlich gemacht, dass geerbt wird:Bei der Definition der Unterklasse wird nun deutlich gemacht, dass geerbt wird:
public class Moped extends KFZ{.......hier alle Attribute und Methoden, die nicht in der Oberklasse enthalten sind}
public class Moped extends KFZ{.......hier alle Attribute und Methoden, die nicht in der Oberklasse enthalten sind}
UML Oberklassen und Vererbung UML Oberklassen und Vererbung
OberklasseAttribute
Methoden
Klasse 1 Klasse 2Attribute Attribute
Methoden Methoden
In einigen Lehrbüchern findet man eine andere Pfeildarstellung für die Vererbung
Ist eine Klasse vollständig in einer andern Klasse enthalten, wird der Pfeil durch eine Raute ersetzt.
Ist eine Klasse vollständig in einer andern Klasse enthalten, wird der Pfeil durch eine Raute ersetzt.
Schulklasse
Attribute
Methoden
SchülerAttribute
Methoden
1..301..30
UML Oberklassen und Vererbung UML Oberklassen und Vererbung
Schulklasse
AttributeMethoden
SchülerAttribute
Methoden
Die Oberklasse enthalt noch weitere Unterklassen vollständigDie Oberklasse enthalt noch weitere Unterklassen vollständig
1..301..30
TafelAttribute
Methoden
RaumAttribute
Methoden
1111