progwerkstatt java klasse, objekte, konstruktoren, methoden 2. veranstaltung - ws 03/03
TRANSCRIPT
![Page 1: Progwerkstatt JAVA Klasse, Objekte, Konstruktoren, Methoden 2. Veranstaltung - WS 03/03](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022070310/55204d6349795902118b8bfa/html5/thumbnails/29.jpg)
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?