50
Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dö

Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Embed Size (px)

Citation preview

Page 1: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Einführung in die Programmierung mit Java

5. Vorlesung WS 2002/2003

Institut für Kartographie und GeoinformationProf.-Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag

Page 2: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

objektorientiertes Programmieren

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Vorstellung wie in der realen Welt:

die Tür

Objekt

Page 3: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

objektorientiertes Programmieren

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Vorstellung wie in der realen Welt:

die Tür

• Höhe = 2.0 m• Breite = 0.7 m• u.a.m

Objekt

hat

Attribute

Page 4: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

objektorientiertes Programmieren

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Vorstellung wie in der realen Welt:

die Tür

kannman

• Höhe = 2.0 m• Breite = 0.7 m• u.a.m

Objekt

hat

Attribute Methoden

• aufschließen• zuschließen• öffnen• schließen• u.a.m

Page 5: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

objektorientiertes Programmieren

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Vorstellung wie in der realen Welt:

die Tür

kannman

• Höhe = 2.0 m• Breite = 0.7 m• u.a.m

Objekt

hat

Attribute Methoden

• aufschließen• zuschließen• öffnen• schließen• u.a.m

Eigenschaften

Page 6: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

objektorientiertes Programmieren- Prinzipien -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

1. Abstraktion

jede Tür

Konzept Umsetzung

diese Tür

Klasse Objekt einer Klasse

klare Trennung zwischen :

und

oder auch :alle Objekte mit gleichen Eigenschaften gehören zu einer Klasse Klassenbildung

Page 7: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

objektorientiertes Programmieren- Prinzipien -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

1. Abstraktion2. Kapselung

• Zugriff auf die Attribute eines Objektsi.d.R. nur über seine Methoden

• Verbergen unwichtiger Details

damit man z.B. eine abgeschlossene Türnicht öffnen kann ohne sie aufzuschließen !

z.B. die genaue Konstruktion des Schlosses

Page 8: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

objektorientiertes Programmieren- Prinzipien -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

1. Abstraktion2. Kapselung3. Vererbung

4. Polymorphismusspäter ...

Page 9: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Klassen besitzen : • einen Klassennamen

Syntax :class Klassenname {

...}

• immer nur eine Klasse je Datei

• der Dateiname ist immer Klassenname.java

Page 10: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Klassen besitzen : • einen Klassennamen

Syntax :class Klassenname {

...}

Beispiel :class Punkt2D {

...}

Page 11: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen- Deklaration von Attributen -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Klassen besitzen : • einen Klassennamen• beliebig viele Attribute

Syntax :class Klassenname {

typ attributsname;...

}

Page 12: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen - Deklaration von Attributen -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Klassen besitzen : • einen Klassennamen• beliebig viele Attribute

Syntax :class Klassenname {

typ attributsname;...

}

Deklaration von Attributenfür jedes Objekt (Instanz) der Klasse:• gleiche Attributsnamen • aber individuelle Werte

Page 13: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen - Deklaration von Attributen -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Klassen besitzen : • einen Klassennamen• beliebig viele Attribute

Syntax :class Klassenname {

typ attributsname;...

}

Beispiel :class Punkt2D {

int nummer;double x;double y;

}

Page 14: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen - Definition von Methoden -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Klassen besitzen : • einen Klassennamen• beliebig viele Attribute• beliebig viele Methoden

Syntax :class Klassenname {

// Attributetyp methodenname( Parameter){

Anweisung; ...

}}

Page 15: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen - Definition von Methoden -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Klassen besitzen : • einen Klassennamen• beliebig viele Attribute• beliebig viele Methoden

Syntax :class Klassenname {

// Attributetyp methodenname( Parameter){

Anweisung; ...

}}

Beispiel :class Punkt2D {

int nummer;double x, y;

double getX(){return( x);

}

void setX( double wert){x = wert;

}}

Page 16: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen - Rückgabewerte von Methoden -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Syntax :

class Klassenname {// Attributetyp methodenname( Parameter){

Anweisung;...

}}

Beispiel :

class Punkt2D {int nummer;double x, y;

double getX(){return( x);

}

void setX( double wert){x = wert;

}}

Typ des Rückgabewertes

Page 17: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen - Rückgabewerte von Methoden -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Syntax :

class Klassenname {// Attributetyp methodenname( Parameter){

Anweisung;...

}}

Beispiel :

class Punkt2D {int nummer;double x, y;

double getX(){return( x);

}

void setX( double wert){x = wert;

}}

Rückgabe eines Wertes

Page 18: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen - Rückgabewerte von Methoden -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Syntax :

class Klassenname {// Attributetyp methodenname( Parameter){

Anweisung;...

}}

Beispiel :

class Punkt2D {int nummer;double x, y;

double getX(){return( x);

}

void setX( double wert){x = wert;

}}

Methoden ohne Rückgabe

Page 19: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen - Parameter von Methoden -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Beispiel :class Punkt2D {

int nummer;double x, y;

double getX(){return( x);

}}

eine Methode muss keine Parameter haben !

Syntax :

class Klassenname {// Attributetyp methodenname( Parameter){

Anweisung;...

}}

Page 20: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen - Parameter von Methoden -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Beispiel :class Punkt2D {

int nummer;double x, y;

void setX( double wert){x = wert;

}}

Syntax eines Parameters: typ parametername

Page 21: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen - Parameter von Methoden -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Beispiel :class Punkt2D {

int nummer;double x, y;

void setPosition( double wert_x, double wert_y){x = wert_x;y = wert_y;

}}

bei mehreren Parametern sind die einzelne Parameter durch ein Komma zu trennen !

Page 22: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen - Zugriff auf Attribute aus Methoden -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Beispiel :class Punkt2D {

int nummer;double x, y;

void setPosition( double wert_x, double wert_y){x = wert_x;y = wert_y;

}}

der Zugriff auf Attribute der Klasse aus ihren Methoden erfolgt genau wie bei Variablen der Methoden

Page 23: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen - Erzeugen von Objekten einer Klasse -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Syntax :Klassenname objektname;objektname = new Klassenname();

oder kurz :Klassenname objektname = new Klassenname();

// Instanziierung// Deklaration

Beispiel :Punkt2D tp_1001;tp_1001 = new Punkt2D();

Page 24: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Objekte - Zugriff auf die Attribute -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Syntax :objektname.attributsname

Page 25: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Objekte - Zugriff auf die Attribute -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Syntax :objektname.attributsname

Beispiel :Punkt2D tp_1001 = new Punkt2D();

tp_1001.x = 56987.43;tp_1001.y = 4365.73;tp_1001.nummer = 1001;

Page 26: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Objekte - Zugriff auf die Attribute -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Syntax :objektname.attributsname

Beispiel :Punkt2D tp_1001 = new Punkt2D();tp_1001.x = 56987.43;tp_1001.y = 4365.73;tp_1001.nummer = 1001;

Attribute eines Objekts können genauso verwendet werden wie andere Variablen desselben Typs

double delta_x = tp_1001.x - tp_1002.x;

Page 27: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Objekte - im Arbeitsspeicher -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Beispiel :Punkt2D tp_1001 ;

tp_1001

Page 28: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Objekte - im Arbeitsspeicher -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Beispiel :Punkt2D tp_1001 ;tp_1001 = new Punkt2D();

tp_1001

x =y =nummer =

Page 29: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Objekte - im Arbeitsspeicher -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Beispiel :Punkt2D tp_1001 ;tp_1001 = new Punkt2D();

tp_1001.x = 56987.43;tp_1001.y = 4365.73;tp_1001.nummer = 1001;

tp_1001

x = 56987.43y = 4365.73nummer = 1001

Page 30: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Objekte - im Arbeitsspeicher -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Beispiel :Punkt2D tp_1001 ;tp_1001 = new Punkt2D();

tp_1001.x = 56987.43;tp_1001.y = 4365.73;tp_1001.nummer = 1001;

Punkt2D tp_1002 ;

tp_1001

x = 56987.43y = 4365.73nummer = 1001

tp_1002

Page 31: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Objekte - im Arbeitsspeicher -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Beispiel :Punkt2D tp_1001 ;tp_1001 = new Punkt2D();

tp_1001.x = 56987.43;tp_1001.y = 4365.73;tp_1001.nummer = 1001;

Punkt2D tp_1002 ;tp_1002 = tp_1001;

tp_1001

x = 56987.43y = 4365.73nummer = 1001

tp_1002

Page 32: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Objekte vergleichen

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

a b

Punkt2D a = new Punkt2D(), b = new Punkt2D();

a.x = 1.0; b.x = 1.0;a.y = 2.0; b.y = 2.0;a.nummer = 1;b.nummer = 1;

Was liefert a == b ?

x = 1.0 y = 1.0 nummer = 1

x = 1.0 y = 1.0 nummer = 1

Page 33: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Objekte vergleichen

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

a b

Punkt2D a = new Punkt2D(), b = new Punkt2D();

a.x = 1.0; b.x = 1.0;a.y = 2.0; b.y = 2.0;a.nummer = 1;b.nummer = 1;

Was liefert a == b ?

false !

x = 1.0 y = 1.0 nummer = 1

x = 1.0 y = 1.0 nummer = 1

Page 34: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Objekte vergleichen

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

a b

Punkt2D a = new Punkt2D(), b = new Punkt2D();

a.x = 1.0; b.x = 1.0;a.y = 2.0; b.y = 2.0;a.nummer = 1;b.nummer = 1;

Was liefert a == b ?

false !

Was liefert a.x == b.x ?

x = 1.0 y = 1.0 nummer = 1

x = 1.0 y = 1.0 nummer = 1

Page 35: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Objekte vergleichen

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

a b

Punkt2D a = new Punkt2D(), b = new Punkt2D();

a.x = 1.0; b.x = 1.0;a.y = 2.0; b.y = 2.0;a.nummer = 1;b.nummer = 1;

Was liefert a == b ?

false !

Was liefert a.x == b.x ?

true !

x = 1.0 y = 1.0 nummer = 1

x = 1.0 y = 1.0 nummer = 1

Page 36: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Arrays - ein Array von Objekten -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Syntax :Klassenname[ ] arrayname;arrayname = new Klassenname[groesse];

arrayname[index] = new Klassenname();

ACHTUNG :jedes Arrayelement ist einzeln zu instanziieren

// Instanziieren// eines Elements

// Instanziieren// eines Arrays

// Deklarieren

Page 37: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Arrays - ein Array von Objekten -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Beispiel :Punkt2D[ ] linie;

linie

Page 38: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Arrays - ein Array von Objekten -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Beispiel :Punkt2D[ ] linie;linie = new Punkt2D[2];

linie

10

Page 39: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Arrays - ein Array von Objekten -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Beispiel :Punkt2D[ ] linie;linie = new Punkt2D[2];linie[0] = new Punkt2D();

linie

x = y = nummer =

10

Page 40: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Arrays - ein Array von Objekten -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Beispiel :Punkt2D[ ] linie;linie = new Punkt2D[2];linie[0] = new Punkt2D();linie[1] = new Punkt2D();

linie

x = y = nummer =

10

x = y = nummer =

Page 41: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Arrays - Zugriff auf Objektattribute im Array -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Syntax :arrayname[index].attributsname;

Page 42: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Arrays - Zugriff auf Objektattribute im Array -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Syntax :arrayname[index].attributsname;

Beispiel :Punkt2D[ ] linie;linie = new Punkt2D[2];

linie

10

Page 43: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Arrays - Zugriff auf Objektattribute im Array -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Syntax :arrayname[index].attributsname;

Beispiel :Punkt2D[ ] linie;linie = new Punkt2D[2];linie[0] = new Punkt2D();

linie

x =y = nummer =

10

Page 44: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Arrays - Zugriff auf Objektattribute im Array -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Syntax :arrayname[index].attributsname;

Beispiel :Punkt2D[ ] linie;linie = new Punkt2D[2];linie[0] = new Punkt2D();

linie[0].x = 56743.43;

linie

x = 56743.43; y = nummer =

10

Page 45: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen - Zusammenspiel von Klassen -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Beispiel :

class Punkt2D {int nummer ;double x;double y;

}

class Dreieck {int nummer ;Punkt2D a, b, c;

}

Attribute vom Typ einer Klasse :

zugehörige Datei :Punkt2D.java

zugehörige Datei :Dreieck.java

Page 46: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen - Zusammenspiel von Klassen -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Beispiel :

class Punkt2D {int nummer ;double x;double y;

}

class BerechneStrecke2D {static public void main(String arg[ ]){

Punkt2D anfang = new Point2D(), ende = new Point2D();

anfang.x = 10.0; anfang.y = 20.0;ende.x = -10.0; ende.y = -20.0;

double delta_x = anfang.x – ende.x;double delta_y = anfang.y – ende.y;double strecke = Math.sqrt(

delta_x * delta_x + delta_y * delta_y);

}}

Variablen vom Typ einer Klasse :

Methode

Page 47: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Java - Klassen - Anlegen einer neuen Klasse mit Forte -

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Kontextmenu zu einem Verzeichniserreichbar über einenKlick mit der rechten Maustasteauf das Verzeichnis ( z.B. U:\JAVA )

weiter, genau wie immer ...

NewClasses

Class

Page 48: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Übungsaufgabe (1/2)

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

Hinweis zu (2.) :Lege eine neue Klasse “Kreise“ an undinnerhalb von main(...){ } geht‘s weiter ...

1. Definiert eine Klasse "Kreis" mit den Eigenschaften eines Kreises (Radius, Mittelpunkt).

2. Erzeugt fünf Instanzen der Klasse mit gleichem Mittelpunkt und verschiedenen Radien.

Page 49: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Übungsaufgabe (2/2)

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

1. Definiert eine Klasse "Kreis" mit den Eigenschaften eines Kreises (Radius, Mittelpunkt).

2. Erzeugt fünf Instanzen der Klasse mit gleichem Mittelpunkt und verschiedenen Radien.

3. Speichert die fünf erzeugten Instanzen der Klasse "Kreis" in einem Array ab.

Page 50: Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,

Hausaufgabe

IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04

• Entwerft analog zur Definition von Kreisen die Klassendefinitionen für Dreiecke, Ellipsen und Trapeze. Erzeugt mindestens eine Instanz jeder Klasse und weist ihnen sinnvolle Werte zu.

• Hinweis: Die Lösung umfasst mehrere .java-Dateien. In jedem der Dateinamen (und auch Klassennamen) muss Euer Nachname auftauchen (z.B. Schmitz_Dreieck.java)