Konzepte der objektorientierten Programmierung...

17
Grundzüge Grundzüge der Programmierung der Programmierung Konzepte der objektorientierten Programmierung (ooP) OBJEKTE - KLASSEN

Transcript of Konzepte der objektorientierten Programmierung...

Page 1: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

GrundzügeGrundzüge der Programmierungder Programmierung

Konzepte der objektorientierten Programmierung (ooP)

OBJEKTE - KLASSEN

Page 2: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 2

Inhalt dieser EinheitInhalt dieser Einheit

JAVA ist objektorientiert! Grundbegriffe der objektorientierten Programmierung:

• Objekte (objects)• Klassen (classes)• Nachrichten (messages)• Instanziierung • Vererbung (inheritance)• Schnittstellen (interfaces) • Wiederverwendung (code reuse)

Page 3: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 3

ObjekteObjekte

• Zur Lösung eines Problems müssen Gegenstände des Problemgebietes in einem Modell erfasst werden (z.B. Konten, Verkehrsnetze)

• Modelle sind (vereinfachte) Abbildungen der Realität• Eine Möglichkeit der Modellierung ist die

„objektorientierte Modellierung“• Der Problemraum wird dabei in Objekte zerlegt, die

ein Verhalten haben und durch Eigenschaften charakterisiert sind

Page 4: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 4

ObjektObjekt(Bsp. Fahrrad)(Bsp. Fahrrad)

• Objekt der realen Welt z.B. Fahrrad ist definiert durch:

•• ZustandZustand (Gänge, Farbe, Marke)

•• VerhaltenVerhalten (Schalten, Bremsen)

• Software-Objekte• Zustand wird in VariablenVariablen gespeichert• Verhalten wird in MethodenMethoden abgebildet

Überleitung

Page 5: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 5

ObjektObjekt(Bsp. Fahrrad)(Bsp. Fahrrad)

• Ein Objekt hat • eine eindeutige Identität, die es von allen anderen

Objekten unterscheidet,• einen individuellen Zustand• und ein bestimmtes Verhalten

(das vom Zustand des Objekts abhängen kann).

• Ein spezielles Objekt wird auch InstanzInstanz genannt

bremsen

Gangwechseln

Geschwindigkeiterhöhen 20 km/h

3. Gang

prince

blau

Page 6: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 6

Beispielobjekt: BuchBeispielobjekt: Buch

Eigenschaften Verhalten

Page 7: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 7

VariablenVariablenBeispielobjekt: BuchBeispielobjekt: Buch

Eigenschaften Variablen

Überleitung

Titel: „Thinking in Java“Autor: Bruce EckelErscheinungsjahr: 1997Hardcover: 1Ausleihestatus: verliehenSeiten: 1129Bibliographie: 0

< l i > K o n z e p t i o n

Erscheinungsjahr ?

Page 8: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 8

MethodenMethodenBeispielobjekt: BuchBeispielobjekt: Buch

Verhalten Methoden

Überleitung

Buch ausleihenBuch zurückgebenErscheinungsjahr eintragen

Page 9: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 9

Objekte Objekte --NachrichtenaustauschNachrichtenaustausch

• Objektorientierte Programme bestehen aus Objekten, die miteinander interagieren.

• Die Interaktion zwischen Objekten erfolgt über den Austausch von Nachrichten.

• Wenn Objekt A möchte, dass Objekt B eine seiner Methoden ausführt, sendet Objekt A eine Nachricht an Objekt B.

Page 10: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 10

NachrichtenaustauschNachrichtenaustausch

• Komponenten einer Nachricht

• Das Objekt, auf das die Nachricht adressiert ist (paulsFahrrad).

• Der Name der Methode, die ausgeführt werden soll (gangWechseln).

• Die Parameter, die die Methode benötigt (Gang) (hier: 2).

Page 11: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 11

KlassenKlassen

• Objekte, die bis auf ihren Zustand identisch sind, werden zu "Klassen von Objekten"zusammengefasst.

• Eine Klasse beschreibt das Verhalten und die Eigenschaften von gleichartigen Objekten.(Z.B. Alle individuellen Fahrräder werden zur Klasse Fahrrad zusammengefasst)

• Aus jeder Klasse können beliebig viele Objekte abgeleitet („instanziiert“) werden.

Page 12: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 12

Klassen und ObjekteKlassen und Objekte

Klasse Objekte

Hund

Arco

Seppl

Rex

Klassen beschreiben Objekte, die identische Eigenschaften und gleiches Verhalten haben.

Page 13: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 13

InstanzierungInstanzierung

• Ein Objekt ist die InstanzInstanz einer Klasse.• In der Klasse werden alle Variablen und

Methoden definiert. • Aus einer Klasse können dann beliebig viele

Instanzen abgeleitet werden.• Jede Instanz hat eine eigene Kopie der

Variablen, die in der Klasse definiert sind (Instanzvariable).

Hund

Name: ArcoGeburt: 07.10.00

Name: RexGeburt: 11.11.01

Page 14: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 14

KlassenKlassen-- und und ObjektdiagrammeObjektdiagramme

Beziehung zwischen einer Klasse und ihren Objekten:Jedes Objekt hat seinen eigenen Zustand, der in den Instanzvariablen gespeichert wird.

Page 15: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 15

Charakteristika der Charakteristika der ooPooP

• Alles wird in Objekte zusammengefasst!• Jedes Objekt hat eigene Eigenschaftswerte

(Attribute=Variablen) und ein bestimmtes Verhalten (Methoden).

• Ein objektorientiertes Programm besteht aus einer Menge von kommunizierenden Objekten.

• Klassen beschreiben das Verhalten und die Eigenschaften von gleichartigen Objekten.

• Jedes Objekt ist die Instanz einer Klasse.

Page 16: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 16

ÜbungÜbung

• Identifizieren Sie Objekte (ca. 5) hier im Raum und fassen Sie diese sinnvoll zu Klassen zusammen.

< l i > K o n z e p t i o n

Page 17: Konzepte der objektorientierten Programmierung (ooP)michael.hahsler.net/JAVA/pdf/02_1ObjekteKlassen.pdf · Grundzüge der Programmierung Konzepte der objektorientierten Programmierung

Grundzüge der Programmierung – Objekte und Klassen © Guth, Kaukal, Klimesch 2000-2002 17

Nach dieser Einheit sollten Nach dieser Einheit sollten Sie wissen, ...Sie wissen, ...

• was Objekte und Klassen sind,• wie von realen Objekten ein Software-Objekt

abgeleitet wird,• wie Zustand und Verhalten der Objekte in der

Software abgebildet werden.• wie Objekte miteinander kommunizieren