Progwerkstatt

Werbung
Progwerkstatt
JAVA
Klasse, Objekte, Konstruktoren,
Methoden
2. Veranstaltung - WS 03/03
Progwerkstatt





Wir sind für Euch da!
[email protected]
http://www.informatik.uni-ulm.de/
sgi/progwerkstatt/
Im Pool…
…und in Vorträgen (aber das wisst ihr
ja schon  )
Objektorientiert ?



Java objektorientierte Sprache
Klassen als Definition
Objekte im tatsächlichen
Programmablauf
1
Objektorientiert

Bsp
Der kleine Franz will ein neues Auto
2
Objektorientiert

3
Also überlegt er sich, was ein Auto
denn alles hat:
– Räder
– Lenkrad
– Pedale
– Hupe
Man sieht seine Vorstellung eines Autos ist
noch recht einfach 
Objektorientiert

4
Franz bittet seinen großen Bruder
Klaus ihm doch so ein Auto zu bauen.
Klaus meint: „Da brauche ich doch erst
einmal eine Vorlage…“
Klassen



1
Klassen sind in Java quasi die Vorlage
für Objekte
Sie enthalten Variablen, die die
Attribute des Objektes darstellen
Methoden bieten
Manipulationsmöglichkeiten
Klassen

Klaus baut sich also
eine Vorlage…
2
Klassen
Public class Auto {
//Attribute für das Auto
int raeder;
int pedale;
boolean hupe;
boolean lenkrad;
}
3
Klassen

4
Nun hat das Auto alle Attribute, die es
braucht. Jetzt müsste man es nur noch
konstruieren. Klaus geht in die
Werkstatt…
Klassen


5
In Java muss man die Objekte auch
konstruieren um mit ihnen arbeiten zu
können.
Dafür gibt es in den Klassen die
Konstruktoren
Konstruktoren




1
Jede Klasse verfügt über einen leeren
Standard-Konstruktor
Erzeugt ein Objekt und nimmt für die
Attribute Standardwerte an (die auf
unterschiedlichen Systemen nicht gleich sein
müssen).
Implizit
Sobald ein eigener Konstruktor angegeben
wird, wird Standard-Konstruktor
überschrieben.
Konstruktor


2
Angabe in der Klasse
Ähnlich einer Methode, allerdings:
– Name wie Klasse
– Keine Angabe über einen Rückgabewert
– Parameterangabe wie bei Methoden
möglich
– Mehrere parallele Konstruktoren durch
Überladen möglich
Konstruktor
…
…
3
Dieser Konstruktor
public Auto(){
erzeugt immer „Autos“
raeder = 4;
(genauer Objekte vom
pedale = 3;
Typ Auto) mit 4
lenkrad = true; Räder, 3 Pedalen,
hupe = true;
1 Lenkrad und 1 Hupe
}
Konstruktor
4
Ein etwas anderer Konstruktor
public Auto (int r, int p, boolean h){
raeder = r;
pedale = p;
lenkrad = true;
hupe = h;
}
Konstruktor


5
Dieser Konstruktor lässt mehr
Freiheiten bei der Konstruktion des
Objekts -> Parameter angebbar
Parallel zum ersten Konstruktor in der
Klasse
Neue Objekte


1
Objekte werden in Java normalerweise
mittels new <Konstruktor> erzeugt
Bsp:
Auto pkw = new Auto();
Auto AutoXP = new Auto (3, 2, false);
Neue Objekte
2
Ein Auto bekommt man also durch:
= new(

);
Methoden

Franz freut sich über sein neues
und gibt gleich einmal Gas…
1
Methoden





2
Objekte können manipuliert werden
Dazu gibt es die Methoden
Rückgabewerte (mittels return) oder
void für keine Rückgaben
Parameter
Werden stets auf Objekte angewandt
(Ausnahme: static – Methoden)
Methoden
3
Eine Beispielmethode
public void gibGas(){
faehrt = true;
}
„faehrt“ ist dabei ein weiteres Attribut
von Auto (und muss natürlich in der
Klasse als solches definiert werden).

Methoden

4
Und bremsen müssen wir natürlich
auch noch:
public void bremse(){
faehrt = false;
}
Methoden
5
Fahr ich oder stehe ich?
public boolean gibStatus(){
return faehrt;
}
Hier eine Methode mit Rückgabewert.
Wichtig: return - Statement

Methoden

6
Aufruf von Methoden:
…
Auto car = new Auto();
…
car.gibGas();
…
Man sieht, Methoden sind normalerweise
objektgebunden
Methoden





7
Ausnahme: statische Methoden
Schlüsselwort static
Können über eine Klasse aufgerufen
werden, ohne dass vorher ein Objekt dieser
Klasse (mittels new) instanziert wurde
Verlassen des objektorientierten Konzeptes
aber hin und wieder nützlich
Eine bekannte statische Methode:
public static void main(String[] args){…}
Die Auto – Klasse
public class Auto{
int raeder;
int pedale;
boolean lenkrad;
boolean hupe;
boolean faehrt;
// -- Konstruktoren -public Auto(){
raeder = 4;
pedale = 3;
lenkrad = true;
hupe = true;
faehrt = false;
}
1
public Auto (int s, int p,
boolean h){
raeder = s;
pedale = p;
lenkrad = true;
hupe = h;
faehrt = false;
}
// -- Ende der Konstruktoren --
Die Auto Klasse
public void gibGas(){
faehrt = true;
}
public void bremse() {
faehrt = false;
}
public boolean gibStatus(){
return faehrt;
}
2
public void hupe(){
if (hupe){
System.out.println(„Hup“);
}
}
…
}//Klasse Auto Ende
Die Auto Klasse



3
Natürlich kann man die Klasse beliebig
erweitern
Übung macht den Meister – auch in
Java
Wer mag kann die Auto – Klasse
erweitern, umschreiben, verbessern…

Fazit



Franz hat sein
neues Auto und ist
glücklich…
Und Euch hat der
Vortrag hoffentlich
geholfen 
Fragen?
Herunterladen