Objektorientierte
Programmierung
Einführung
Seite
1
Einführung
Objektorientierte (OO)
Programmierung
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
2
Quellen:
Objektorientierte Softwareentwicklung
Von Bern Oestereich, Oldenburg Verlag
ISBN 3-486-25573-8
System-Entwicklung in der Wirtschaftsinformatik
Von R.Böhm & E.Fuchs, vdf Verlag
ISBN 3-7281-2762-0
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
3
Ziele:
Sie kennen nach dem Kurs die Begriffe:
•
•
•
•
•
•
•
•
Objektorientierung
UML
Klasse
Objekt
Eigenschaft
Methode
Attribut
Vererbung
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
4
Ziele:
Sie können nach dem Kurs im Delphi Klassen definieren
und Objekte einsetzen und verwenden.
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
5
Unstrukturierte Programmierung
100
110
120
130
140
…
dim a
a = 45
a = a * 13
Gosub 400
if a < 9999 GOTO 120
400
410
420
430
a = a – 5
gosub 200
if a < 1200 goto 120
return
Vertreter: Fortran, Cobol, Basic etc.
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
6
Unstrukturierte Programmierung
Vorteile:
• Schnelle „Resultate“
Nachteile:
• Unübersichtlich
• Fehleranfällig
• Schlecht wartbar
• Globale Variablen
• Code kann nicht wiederverwendet werden
• Sehr technisch
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
7
Strukturierte Programmierung
Procedure Schreibe(zahl:integer);
Var i:integer;
Begin
for i := 1 to 10 do begin
writeln(zahl*i);
end;
End;
Begin
Schreibe(13);
End.
Vertreter: Pascal, Modula-2, C, etc.
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
8
Strukturierte Programmierung
Vorteile:
• Übersichtlich
• Lokale Variablen
• besser wartbar
• Vom Groben ins Detail (Prozeduren)
Nachteile:
• Methoden und Notation nicht einheitlich
• Schlecht wiederverwendbarer Code
• Konzept Funktionen und Daten entspricht nicht der
realen Welt
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
9
Abstammung der Programmiersprachen
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
10
OO Notation: Unified Modeling Language
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
11
Ziele der Objektorientierung
Erweiterbarkeit und Wiederverwendbarkeit
Komplexe Systeme methodisch in kleinere Teilsysteme
zerlegen, damit die Programmierung und Wartung möglich wird
Gute Wartbarkeit der vorhandenen Programme
Programmlösung als vereinfachtes Abbild der Realität
Sicherheit
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
12
Vom Groben ins Detail, und zurück
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
13
Begriffe
Klasse und Objekt
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
14
Klasse
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
15
Objekt
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
16
Klasse und Objekte
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
17
Klasse und Objekte
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
18
Objekte: gleich, aber nicht identisch
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
19
Vererbung
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
20
Generalisierung & Spezialisierung
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
21
Generalisierung & Spezialisierung
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
22
Objektorientierte Programmierung
Vorteile:
• Sicher durch Kapselung
• Flexibel und Erweiterbar durch Vererbung
• Nahe an der Realität durch System- und Objektsicht
Nachteile:
• Hoher Planungsaufwand
• Es wird sehr viel Code generiert
• Nicht immer performant
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
23
Fahrzeuge, Autos, LKW
Fahrzeug
Auto
TEKO Bern, Jürg Hess
LKW
Bus
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
24
Abstrakte Klasse TFahrzeug
unit jheFahrzeug;
interface
type TFahrzeug = class(TObject)
protected
function berechneV:integer; virtual; abstract;
public
property v: integer read berechneV;
procedure beschleunigen; virtual; abstract;
procedure bremsen; virtual; abstract;
end; // TFahrzeug
implementation
end.
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
25
Klasse TAuto; Interface (Schnittstelle)
unit jheAuto;
interface
uses jheFahrzeug;
type TAuto = class(TFahrzeug)
private
Fv : integer;
protected
function berechneV:integer; override;
public
property v: integer read berechneV;
procedure beschleunigen; override;
procedure bremsen; override;
end; // TAuto
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004
Objektorientierte
Programmierung
Einführung
Seite
26
Klasse TAuto; Implementation (Realisierung)
…
implementation
procedure TAuto.bremsen;
begin
Fv := Fv - 5;
end;
procedure TAuto.beschleunigen;
begin
Fv := Fv + 5;
end;
function TAuto.berechneV:integer;
begin
result := Fv;
end;
TEKO Bern, Jürg Hess
Ausgabe 2, Nov. 2004

Programmierung Einführung