06.10.2013 Aufrufe

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />

32.1.8 UML, Objektorientierte Analyse/Design<br />

Bei der objektorientierten Analyse sucht man nach Objekten, deren Eigenschaften <strong>und</strong> Fähigkeiten<br />

sowie den Beziehungen der Objekte untere<strong>in</strong>ander. Der objektorientierte Ansatz ist e<strong>in</strong>e Weiterentwicklung<br />

der modularen Programmierung.<br />

Bei <strong>die</strong>sem Vorgehen steht nun nicht mehr <strong>die</strong> Funktionalität, also das wie, sondern <strong>die</strong> Daten, also<br />

das was im Vordergr<strong>und</strong>. E<strong>in</strong> Objekt ist e<strong>in</strong>e E<strong>in</strong>heit, <strong>die</strong> bestimmte Eigenschaften (Attribute) aufweist,<br />

<strong>und</strong> bestimmte Befehle (Methoden) ausführen kann. E<strong>in</strong> Objekt kann e<strong>in</strong>e konkrete Entsprechung<br />

<strong>in</strong> der realen Welt haben, aber auch etwas abstraktes wie e<strong>in</strong>en Algorithmus umfassen.<br />

Beim objektorientierten Entwurf sucht man zuerst alle am Problem beteiligten Objekte, bestimmt<br />

anschliessend deren Eigenschaften (Attribute) <strong>und</strong> Aufgaben <strong>und</strong> f<strong>in</strong>det heraus, wie <strong>die</strong>se Objekte<br />

mite<strong>in</strong>ander <strong>in</strong> Beziehung stehen. Die zu den Daten gehörenden Funktionen (Aufgaben) werden<br />

dabei <strong>in</strong> <strong>die</strong> Objekte <strong>in</strong>tegriert. Man spricht dabei nicht mehr von Funktionen, sondern von Memberfunktionen<br />

oder Methoden. Die Daten werden entsprechend als Attribute (Eigenschaften) oder<br />

Member bezeichnet. Die Objekte kommunizieren untere<strong>in</strong>ander um <strong>die</strong> Aufgabe des Gesamtsystems<br />

zu erledigen.<br />

Funktionsaufrufe resp. Methodenaufrufe werden <strong>in</strong> der Literatur oft als 'Botschaften' an e<strong>in</strong> Objekt<br />

bezeichnet. (Z. B. Objekt A sendet <strong>die</strong> Botschaft 'ZeichneDich()' an Objekt B).<br />

Jedes Objekt gehört zu e<strong>in</strong>er Klasse, gleichartige Objekte gehören zur selben Klasse. (Gleichartige<br />

Objekte besitzen alle <strong>die</strong> gleichen Eigenschaften, nur können sie anders ausgeprägt se<strong>in</strong>. Zwei Objekte<br />

können z. B. <strong>die</strong> Eigenschaft Farbe besitzen, wobei sie beim e<strong>in</strong>en rot, <strong>und</strong> beim anderen grün<br />

ist)<br />

Die objektorientierte Methode kann <strong>in</strong> jeder <strong>Programmiersprache</strong> angewendet werden (Sogar Assembler),<br />

aber es gibt Sprachen, <strong>die</strong> speziell dafür entwickelt worden s<strong>in</strong>d wie Smalltalk, <strong>C++</strong> oder<br />

Java. (Das heisst aber noch nicht, dass man bereits objektorientiert Programmiert, sobald man e<strong>in</strong>e<br />

<strong>die</strong>ser Sprachen benutzt, <strong>die</strong> Sprache ist nur das Werkzeug)<br />

Die wichtigsten Gr<strong>und</strong>sätze der objektorientierten Programmierung s<strong>in</strong>d:<br />

Abstraktion Es werden nur <strong>die</strong> wesentlichen Eigenschaften e<strong>in</strong>es Objektes erfasst. Die unwesentlichen<br />

oder irrelevanten Eigenschaften werden ignoriert. Die Konzentration<br />

auf das Wesentliche erlaubt e<strong>in</strong>e von den Details losgelöste Sicht.<br />

Kapselung <strong>E<strong>in</strong>e</strong>r der zentralen Aspekte der OOP ist, Daten mit den zugehörigen Funktionen<br />

zusammenzuführen <strong>und</strong> gegen Aussen möglichst zu verstecken. Die daraus resultierende<br />

Datenstruktur nennt sich Klasse. <strong>E<strong>in</strong>e</strong> Variable oder Konstante, <strong>die</strong><br />

auf <strong>die</strong>ser Datenstruktur basiert, nennt sich e<strong>in</strong>e Instanz der Klasse. Der wesentliche<br />

Unterschied e<strong>in</strong>er Klasse des OOP zu den schon bekannten Datenstrukturen<br />

(z.B. e<strong>in</strong> struct <strong>in</strong> C oder e<strong>in</strong>em RECORD <strong>in</strong> Pascal) ist, dass e<strong>in</strong>e Klasse zusätzlich<br />

zu den Daten auch weitreichende Funktionalitäten übernehmen kann.<br />

Dadurch wird sie zu e<strong>in</strong>em Datentyp, der zu den Inhalten (den Daten) auch <strong>die</strong><br />

Möglichkeiten spezifiziert, mit ihnen umzugehen (<strong>die</strong> Funktionen). Die Daten<br />

e<strong>in</strong>er Klasse werden dabei als Elemente oder Attribute, <strong>und</strong> <strong>die</strong> Funktionen als<br />

Elementfunktionen oder Methoden bezeichnet. Normalerweise s<strong>in</strong>d <strong>die</strong> Attribute<br />

(Daten) e<strong>in</strong>es Objektes von aussen nicht direkt zugänglich, sondern werden gegen<br />

Aussen gekapselt. Auf <strong>die</strong> Daten kann nur <strong>in</strong>direkt über Zugriffsfunktionen<br />

zugegriffen werden. Somit ist <strong>die</strong> <strong>in</strong>terne Repräsentation der Daten Sache des<br />

Objektes, sie geht sonst niemanden etwas an.<br />

Beim Erzeugen e<strong>in</strong>es Objektes wird <strong>die</strong>ses üblicherweise automatisch <strong>in</strong>itialisiert,<br />

es ist somit unmöglich, nicht <strong>in</strong>itialisierte Objekte im System zu haben.<br />

Und wenn e<strong>in</strong> Objekt aufhört zu existieren räumt es h<strong>in</strong>ter sich ordentlich auf,<br />

bevor es verschw<strong>in</strong>det. Objekte haben somit fast e<strong>in</strong>e Art Eigenleben.<br />

Gedruckt am 11.09.2008 13:04:00 Letzte Änderung am: 11. September 2008 Version 2.4, I. Oesch 134/147

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!