16.11.2014 Aufrufe

Prozedurale Programmierung Objektorientierte Programmierung

Prozedurale Programmierung Objektorientierte Programmierung

Prozedurale Programmierung Objektorientierte Programmierung

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!