Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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,

Ähnliche Präsentationen


Präsentation zum Thema: "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,"—  Präsentation transkript:

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, Dipl.-Ing. Dirk Dörschlag

2 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

3 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

4 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 kann man Höhe = 2.0 m Breite = 0.7 m u.a.m Objekt hat AttributeMethoden aufschließen zuschließen öffnen schließen u.a.m

5 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 kann man Höhe = 2.0 m Breite = 0.7 m u.a.m Objekt hat AttributeMethoden aufschließen zuschließen öffnen schließen u.a.m Eigenschaften

6 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 KonzeptUmsetzung diese Tür KlasseObjekt einer Klasse  klare Trennung zwischen : und oder auch : alle Objekte mit gleichen Eigenschaften gehören zu einer Klasse  Klassenbildung

7 objektorientiertes Programmieren - Prinzipien - IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04 1. Abstraktion 2. Kapselung Zugriff auf die Attribute eines Objekts i.d.R. nur über seine Methoden Verbergen unwichtiger Details damit man z.B. eine abgeschlossene Tür nicht öffnen kann ohne sie aufzuschließen ! z.B. die genaue Konstruktion des Schlosses

8 objektorientiertes Programmieren - Prinzipien - IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04 1. Abstraktion 2. Kapselung 3. Vererbung 4. Polymorphismus später...

9 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

10 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 {... }

11 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;... }

12 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 Attributen für jedes Objekt (Instanz) der Klasse: gleiche Attributsnamen aber individuelle Werte

13 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; }

14 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 { // Attribute typ methodenname( Parameter){ Anweisung;... }

15 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 { // Attribute typ methodenname( Parameter){ Anweisung;... } Beispiel : class Punkt2D { int nummer; double x, y; double getX(){ return( x); } void setX( double wert){ x = wert; }

16 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 { // Attribute typ 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

17 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 { // Attribute typ 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

18 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 { // Attribute typ 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

19 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 { // Attribute typ methodenname( Parameter){ Anweisung;... }

20 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

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

22 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

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

24 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

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

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

27 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

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

29 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.43 y = 4365.73 nummer = 1001

30 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.43 y = 4365.73 nummer = 1001 tp_1002

31 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.43 y = 4365.73 nummer = 1001 tp_1002

32 Objekte vergleichen IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04 ab 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

33 Objekte vergleichen IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04 ab 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 

34 Objekte vergleichen IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04 ab 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

35 Objekte vergleichen IKG Dörschlag, Gröger, Plümer – Einführung in die Programmierung mit Java – WS 03/04 ab 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

36 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

37 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

38 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

39 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

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

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

42 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

43 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

44 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

45 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

46 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

47 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 Verzeichnis erreichbar über einen Klick mit der rechten Maustaste auf das Verzeichnis ( z.B. U:\JAVA ) weiter, genau wie immer... New Classes Class

48 Ü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 und innerhalb 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.

49 Ü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.

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


Herunterladen ppt "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,"

Ähnliche Präsentationen


Google-Anzeigen