11
ein kleines Beispiel Klassendefinitionen in Java

Ein kleines Beispiel Klassendefinitionen in Java

Embed Size (px)

Citation preview

Page 1: Ein kleines Beispiel Klassendefinitionen in Java

ein kleines Beispielein kleines Beispiel

Klassendefinitionen in Java

Klassendefinitionen in Java

Page 2: Ein kleines Beispiel 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

Page 3: Ein kleines Beispiel Klassendefinitionen in Java

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

Page 4: Ein kleines Beispiel Klassendefinitionen in Java

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);

Page 5: Ein kleines Beispiel Klassendefinitionen in Java

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 )

Page 6: Ein kleines Beispiel Klassendefinitionen in Java

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

Page 7: Ein kleines Beispiel Klassendefinitionen in Java

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 ?

Page 8: Ein kleines Beispiel Klassendefinitionen in Java

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 >>

Page 9: Ein kleines Beispiel Klassendefinitionen in Java

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}

Page 10: Ein kleines Beispiel Klassendefinitionen in Java

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

Page 11: Ein kleines Beispiel Klassendefinitionen in Java

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