29
Progwerkstatt Progwerkstatt JAVA JAVA Klasse, Objekte, Klasse, Objekte, Konstruktoren, Methoden Konstruktoren, Methoden 2. Veranstaltung - WS 2. Veranstaltung - WS 03/03 03/03

Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

Embed Size (px)

Citation preview

Page 1: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

ProgwerkstattProgwerkstatt

JAVAJAVAKlasse, Objekte, Klasse, Objekte, Konstruktoren, MethodenKonstruktoren, Methoden

2. Veranstaltung - WS 03/032. Veranstaltung - WS 03/03

Page 2: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

ProgwerkstattProgwerkstatt

Wir sind für Euch da!Wir sind für Euch da! [email protected]@informatik.uni-ulm

.de.de http://www.informatik.uni-ulm.de/http://www.informatik.uni-ulm.de/

sgi/progwerkstatt/sgi/progwerkstatt/ Im Pool…Im Pool… ……und in Vorträgen (aber das und in Vorträgen (aber das

wisst ihr ja schon wisst ihr ja schon ) )

Page 3: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

ObjektorientiertObjektorientiert ? ?11 Java objektorientierte SpracheJava objektorientierte Sprache KlassenKlassen als Definition als Definition ObjekteObjekte im tatsächlichen im tatsächlichen

ProgrammablaufProgrammablauf

Page 4: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

ObjektorientiertObjektorientiert22 BspBsp

Der kleine Franz will ein neues AutoDer kleine Franz will ein neues Auto

Page 5: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

ObjektorientiertObjektorientiert33 Also überlegt er sich, was ein Also überlegt er sich, was ein

Auto denn alles hat:Auto denn alles hat:– RäderRäder– LenkradLenkrad– PedalePedale– HupeHupe

Man sieht seine Vorstellung eines Man sieht seine Vorstellung eines Autos ist noch recht einfach Autos ist noch recht einfach

Page 6: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

ObjektorientiertObjektorientiert44 Franz bittet seinen großen Bruder Franz bittet seinen großen Bruder

Klaus ihm doch so ein Auto zu Klaus ihm doch so ein Auto zu bauen. Klaus meint: „Da brauche bauen. Klaus meint: „Da brauche ich doch erst einmal eine ich doch erst einmal eine Vorlage…“Vorlage…“

Page 7: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

KlassenKlassen 11

Klassen sind in Java quasi die Klassen sind in Java quasi die Vorlage für ObjekteVorlage für Objekte

Sie enthalten Variablen, die die Sie enthalten Variablen, die die AttributeAttribute des Objektes darstellen des Objektes darstellen

MethodenMethoden bieten bieten ManipulationsmöglichkeitenManipulationsmöglichkeiten

Page 8: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

KlassenKlassen 22

Klaus baut sich Klaus baut sich also eine also eine Vorlage…Vorlage…

Page 9: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

KlassenKlassen 33

Public class Auto {Public class Auto {

//Attribute für das Auto//Attribute für das Auto

int raeder;int raeder;

int pedale;int pedale;

boolean hupe;boolean hupe;

boolean lenkrad;boolean lenkrad;

}}

Page 10: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

KlassenKlassen 44

Nun hat das Auto alle Attribute, Nun hat das Auto alle Attribute, die es braucht. Jetzt müsste man die es braucht. Jetzt müsste man es nur noch konstruieren. Klaus es nur noch konstruieren. Klaus geht in die Werkstatt…geht in die Werkstatt…

Page 11: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

KlassenKlassen 55

In Java muss man die Objekte In Java muss man die Objekte auch konstruieren um mit ihnen auch konstruieren um mit ihnen arbeiten zu können.arbeiten zu können.

Dafür gibt es in den Klassen die Dafür gibt es in den Klassen die KonstruktorenKonstruktoren

Page 12: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

KonstruktorenKonstruktoren 11

Jede Klasse verfügt über einen leeren Jede Klasse verfügt über einen leeren Standard-KonstruktorStandard-Konstruktor

Erzeugt ein Objekt und nimmt für die Erzeugt ein Objekt und nimmt für die Attribute Standardwerte an (die auf Attribute Standardwerte an (die auf unterschiedlichen Systemen nicht unterschiedlichen Systemen nicht gleich sein müssen). gleich sein müssen).

ImplizitImplizit Sobald ein eigener Konstruktor Sobald ein eigener Konstruktor

angegeben wird, wird Standard-angegeben wird, wird Standard-Konstruktor überschrieben.Konstruktor überschrieben.

Page 13: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

KonstruktorKonstruktor22 Angabe in der KlasseAngabe in der Klasse Ähnlich einer Methode, allerdings:Ähnlich einer Methode, allerdings:

– Name wie KlasseName wie Klasse– Keine Angabe über einen Keine Angabe über einen

RückgabewertRückgabewert– Parameterangabe wie bei Methoden Parameterangabe wie bei Methoden

möglichmöglich– Mehrere parallele Konstruktoren durch Mehrere parallele Konstruktoren durch

Überladen möglichÜberladen möglich

Page 14: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

KonstruktorKonstruktor33…… Dieser Konstruktor Dieser Konstruktor

public Auto(){public Auto(){ erzeugt immer „Autos“erzeugt immer „Autos“

raeder = 4;raeder = 4; (genauer Objekte vom(genauer Objekte vom

pedale = 3;pedale = 3; Typ Auto) mit 4 Typ Auto) mit 4

lenkrad = true;lenkrad = true; Räder, 3 Pedalen,Räder, 3 Pedalen,

hupe = true;hupe = true; 1 Lenkrad und 1 Hupe1 Lenkrad und 1 Hupe

} }

……

Page 15: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

KonstruktorKonstruktor44

Ein etwas anderer KonstruktorEin etwas anderer Konstruktor

public Auto (int r, int p, boolean h){public Auto (int r, int p, boolean h){

raeder = r;raeder = r;

pedale = p;pedale = p;

lenkrad = true;lenkrad = true;

hupe = h;hupe = h;

}}

Page 16: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

KonstruktorKonstruktor55 Dieser Konstruktor lässt mehr Dieser Konstruktor lässt mehr

Freiheiten bei der Konstruktion Freiheiten bei der Konstruktion des Objekts -> Parameter des Objekts -> Parameter angebbarangebbar

Parallel zum ersten Konstruktor in Parallel zum ersten Konstruktor in der Klasseder Klasse

Page 17: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

Neue ObjekteNeue Objekte 11

Objekte werden in Java Objekte werden in Java normalerweise mittels normalerweise mittels new new <Konstruktor><Konstruktor> erzeugt erzeugt

Bsp:Bsp:Auto pkw = new Auto();Auto pkw = new Auto();

Auto AutoXP = new Auto (3, 2, false);Auto AutoXP = new Auto (3, 2, false);

Page 18: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

Neue ObjekteNeue Objekte 22

Ein Auto bekommt man also durch:Ein Auto bekommt man also durch:

= new( );= new( );

Page 19: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

MethodenMethoden 11

Franz freut sich über sein neuesFranz freut sich über sein neues

und gibt gleich einmal Gas…und gibt gleich einmal Gas…

Page 20: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

MethodenMethoden 22

Objekte können manipuliert werdenObjekte können manipuliert werden Dazu gibt es die Dazu gibt es die MethodenMethoden Rückgabewerte (mittels return) oder Rückgabewerte (mittels return) oder

void für keine Rückgabenvoid für keine Rückgaben ParameterParameter Werden stets auf Objekte angewandt Werden stets auf Objekte angewandt

(Ausnahme: static – Methoden)(Ausnahme: static – Methoden)

Page 21: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

MethodenMethoden 33

Eine BeispielmethodeEine Beispielmethode

public void gibGas(){public void gibGas(){

faehrt = true;faehrt = true;

}}

„„faehrt“ ist dabei ein weiteres faehrt“ ist dabei ein weiteres Attribut von Auto (und muss Attribut von Auto (und muss natürlich in der Klasse als solches natürlich in der Klasse als solches definiert werden).definiert werden).

Page 22: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

MethodenMethoden 44

Und bremsen müssen wir Und bremsen müssen wir natürlich auch noch:natürlich auch noch:

public void bremse(){public void bremse(){

faehrt = false;faehrt = false;

}}

Page 23: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

MethodenMethoden 55

Fahr ich oder stehe ich?Fahr ich oder stehe ich?

public boolean gibStatus(){public boolean gibStatus(){

return faehrt;return faehrt;

}}

Hier eine Methode mit Hier eine Methode mit Rückgabewert.Rückgabewert.

Wichtig: return - StatementWichtig: return - Statement

Page 24: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

MethodenMethoden 66

Aufruf von Methoden:Aufruf von Methoden:……

Auto car = new Auto();Auto car = new Auto();

……

car.gibGas();car.gibGas();

……

Man sieht, Methoden sind Man sieht, Methoden sind normalerweise objektgebundennormalerweise objektgebunden

Page 25: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

MethodenMethoden 77

Ausnahme: statische MethodenAusnahme: statische Methoden Schlüsselwort Schlüsselwort staticstatic Können über eine Klasse aufgerufen Können über eine Klasse aufgerufen

werden, ohne dass vorher ein Objekt werden, ohne dass vorher ein Objekt dieser Klasse (mittels new) instanziert dieser Klasse (mittels new) instanziert wurdewurde

Verlassen des objektorientierten Verlassen des objektorientierten Konzeptes aber hin und wieder nützlichKonzeptes aber hin und wieder nützlich

Eine bekannte statische Methode: Eine bekannte statische Methode: public static void main(String[] args){…}public static void main(String[] args){…}

Page 26: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

Die Auto – Klasse Die Auto – Klasse 11public class Auto{public class Auto{

int raeder;int raeder;int pedale;int pedale;boolean lenkrad;boolean lenkrad;boolean hupe;boolean hupe;boolean faehrt;boolean faehrt;

// -- Konstruktoren --// -- Konstruktoren --public Auto(){public Auto(){

raeder = 4; raeder = 4; pedale = 3;pedale = 3;lenkrad = true; lenkrad = true; hupe = true;hupe = true;faehrt = false;faehrt = false;

}}

public Auto (int s, int p, public Auto (int s, int p, boolean h){boolean h){

raeder = s; raeder = s; pedale = p;pedale = p;lenkrad = true; lenkrad = true; hupe = h;hupe = h;faehrt = false;faehrt = false;

}}

// -- Ende der Konstruktoren --// -- Ende der Konstruktoren --

Page 27: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

Die Auto KlasseDie Auto Klasse22public void gibGas(){public void gibGas(){

faehrt = true;faehrt = true;}}

public void bremse() {public void bremse() {faehrt = false;faehrt = false;

}}

public boolean gibStatus(){public boolean gibStatus(){return faehrt;return faehrt;

}}

public void hupe(){public void hupe(){if (hupe){if (hupe){

System.out.println(„HupSystem.out.println(„Hup“);“);}}

}}……

}//Klasse Auto Ende}//Klasse Auto Ende

Page 28: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

Die Auto KlasseDie Auto Klasse33 Natürlich kann man die Klasse Natürlich kann man die Klasse

beliebig erweiternbeliebig erweitern Übung macht den Meister – auch Übung macht den Meister – auch

in Javain Java Wer mag kann die Auto – Klasse Wer mag kann die Auto – Klasse

erweitern, umschreiben, erweitern, umschreiben, verbessern… verbessern…

Page 29: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03

FazitFazit

Franz hat sein Franz hat sein neues Auto und neues Auto und ist glücklich…ist glücklich…

Und Euch hat der Und Euch hat der Vortrag Vortrag hoffentlich hoffentlich geholfen geholfen

Fragen?Fragen?