Prozedurale Programmierung Objektorientierte Programmierung
Prozedurale Programmierung Objektorientierte Programmierung
Prozedurale Programmierung Objektorientierte Programmierung
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
prozedurale objektorientierte <strong>Programmierung</strong><br />
Es soll ein Programm für eine Bibliothek geschrieben werden. An das Programm werden die hier<br />
grob formulierten Anforderungen gestellt.<br />
● Der Bücherbestand soll verwaltet werden können<br />
● Es soll zu jedem Zeitpunkt wissen, wo sich ein einzelnes Buch befindet<br />
● Die Ausleihzeiten sollen überwacht werden<br />
<strong>Prozedurale</strong> <strong>Programmierung</strong><br />
<strong>Objektorientierte</strong> <strong>Programmierung</strong><br />
Entwurf der Datenstruktur (in C):<br />
struct buch<br />
{<br />
char titel[50];<br />
char autor[50];<br />
char isbn[14];<br />
char ausleiher[40];<br />
char ausleihdatum[11];<br />
long regalplatz;<br />
}<br />
Es werden einige Eigenschaften eines Buches<br />
zusammengefasst zu einem neuen<br />
Datentypen. Dieser Typ heißt buch.<br />
Erstellen eines Arrays für 5000 Bücher:<br />
struct buch buecher[5000];<br />
Entwurf der Funktionen:<br />
Jetzt fehlen noch Funktionen, die auf die in<br />
buecher gespeicherten Daten zugreifen und<br />
sie lesen und manipulieren können:<br />
void buchEingeben(int index);<br />
void buchLöschen(int index);<br />
void buchAusleihen(int index, char* ausleiher);<br />
void buchZuruecknehmen(int index);<br />
Jede der Funktionen muss den Index des zu<br />
bearbeitenden Buches übergeben bekommen,<br />
damit eine Beziehung zwischen den nicht fest<br />
miteinander verbundenen Daten und<br />
Funktionen hergestellt werden kann.<br />
Bei der objektorientierten Software-<br />
Entwicklung fasst man Eigenschaften und<br />
Funktionen zu Objekten zusammen.<br />
Jedes Buch-Objekt (hier 5000) hat seine<br />
eigene Kopie der Funktionen, die<br />
ausschließlich auf die objekteigenen Attribute<br />
zugreifen. Dadurch muss den Funktionen<br />
auch kein Index eines Buches mitgegeben<br />
werden, denn sie gehören ja immer zu genau<br />
einem bestimmten Buch.<br />
Für die Bibliotheks-Software müssen 5000<br />
Buch-Objekte angelegt werden.<br />
Es wird eine Klasse erstellt, sie ist eine Art<br />
Vorlage für die Erstellung von Objekten. Sie<br />
beschreibt, welche Eigenschaften (Attribute)<br />
ein Objekt beschreiben und welche Methoden<br />
auf diese Attribute angewendet werden<br />
können.<br />
public class buecher<br />
{<br />
char titel;<br />
char autor;<br />
char isbn;<br />
char ausleiher;<br />
char ausleihdatum;<br />
long regalplatz;<br />
char veroeffentlichung;<br />
//Eigenschaften<br />
buecher (char t, char a, char i, char au, char<br />
ausd, long r, char ver)<br />
{<br />
//Konstruktor<br />
Änderungen im Programm:<br />
Das Erscheinungsjahr soll nachträglich mit in<br />
die Informationsstruktur aufgenommen<br />
werden; buch muss um ein Feld erweitert<br />
werden:<br />
}<br />
titel = t;<br />
autor = a;<br />
isbn = i;<br />
ausleiher = au;<br />
ausleihdatum = ausd;<br />
regalplatz = r;<br />
veroeffentlichung = ver;
prozedurale objektorientierte <strong>Programmierung</strong><br />
struct buch<br />
{<br />
char titel[50];<br />
char autor[50];<br />
char isbn[14];<br />
char ausleiher[40];<br />
char ausleihdatum[11];<br />
long regalplatz;<br />
char veroeffentlichung[20];<br />
}<br />
Über das Bibliotheks-Programm verstreut (im<br />
gesamten Quelltext) findet sich eine Vielzahl<br />
von Funktionen, die mit der Struktur buch<br />
arbeiten.<br />
Jede dieser Funktionen muss angepasst<br />
werden.<br />
Bei komplexen Programmen und großen<br />
Entwickler-Teams weiß irgendwann niemand<br />
mehr, wer gerade welche Datenstrukturen<br />
verändert hat oder welche Programmteile<br />
damit arbeiten.<br />
Es entsteht ein Chaos aus im Programm<br />
verstreuten Daten und Funktionen.<br />
//Methoden<br />
void buchEingeben()<br />
{ }<br />
void buchLöschen()<br />
{ }<br />
void buchAusleihen(char ausleiher)<br />
{ }<br />
void buchZuruecknehmen()<br />
{ }<br />
}<br />
Die Datenstruktur kann hier um die neue<br />
Eigenschaft (veroeffentlichung) erweitert<br />
werden. Anschließend findet man alle<br />
Funktionen, die mit diesen Daten arbeiten an<br />
der gleichen Stelle vor. Die Erweiterung<br />
bestehender Software wird somit vereinfacht.<br />
Erstellen von Objekten aus der Klasse<br />
buecher:<br />
buecher buch1 = new buecher(“Käpten<br />
Blaubär“, “Walter Moers“, 333-3333-2122,<br />
Heinz, 01.05.2007, 1255, 12.12.1998);<br />
Abhilfe: OOP