Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Josef Martin Geändert vor über 9 Jahren
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)
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.