Wissensdatenbank Wirtschaftsrecht

aktuelles Dokument: ObjProg05Beziehungen
image4
image3
image2
image1
 Alle Kategorien:
  Forschungsdatenbank
  Lehrveranstaltungen
  Lexikon
  Literatur
  Rechtsgebiete
  Rechtsprechung
  Service
  Studium F H S
  Wissensmanagement
ich war hier: ObjProg05Beziehungen

Version [26612]

Dies ist eine alte Version von ObjProg05Beziehungen erstellt von RonnyGertler am 2013-04-29 19:15:42.

 

 (image: http://wdb.fh-sm.de/uploads/QualipaktLehre/BMBF_Logo_klein.jpg)

Objektorientierte Programmierung - Kapitel 5 - Objekt-Beziehungen


Inhalte von Dr. E. Nadobnyh

51. Verbindungen zwischen Objekten in C++


Nachricht


Ein objektorientiertes Programm ist eine Vielzahl kooperierender Objekte.

 (image: https://hssm.hqedv.de/uploads/ObjProg05Beziehungen/oop21.gif)

Kommunikation zwischen Objekten bedeutet, dass die Objekte sich gegenseitig Nachrichten schicken, d.h. Methoden des anderen Objektes aufrufen.


Verbindungen zwischen Objekten in C++


Die Voraussetzung für eine Kommunikation zwischen Objekten ist , dass diese sich kennen. Eine C++ -Methode kennt folgende Objekte:

1) Globale Objekte,
2) Lokale Objekte,
3) Parameter-Objekte,
4) Attribut-Objekte.

Objekte können in drei bekannten Formen gestaltet werden:

1) Benanntes-Objekt,
2) Referenziertes Objekt ,
3) Referenz-Objekt.


Subobjekte


Objekte können sich aus anderen Objekten (AttributObjekten) zusammensetzen.

Ein Attribut-Objekt wird auch als Subobjekt bezeichnet.

Es gibt zwei Arten von Subobjekten:

1) Teilobjekt (Benanntes-Objekt ),

2) Eigenständiges Subobjekt (Referenziertes Objekt ).

Begriffsverwirrung: Ein Subobjekt kann manchmal als ein Teilobjekt bezeichnet werden.

Ein Teilobjekt ist ein unlösbares Subobjekt.

class A{ };
class B{ A a1; };
main(){ B b1; }

Hier ist a1 das Teilobjekt des Objektes b1.

Bei der Initialisierung eines Objektes, das Teilobjekte enthält, sind mehrere Konstruktoren auszuführen.

Reihenfolge der Konstruktor- Aufrufe:

1) Zuerst werden die Teilobjekte angelegt und initialisiert. Ohne weitere Angaben wird für jedes Teilobjekt der Default- Konstruktor aufgerufen.
2) Danach wird der Konstruktor des Objektes aufgerufen.

Der Aufruf von Default-Konstruktoren beim Aufbau von Teilobjekten hat folgende Nachteile:

1) Ein Teilobjekt wird zwei mal mit Werten versehen: zuerst durch den Aufruf des Default-Konstruktors des Teilobjektes, danach durch die Zuweisung beim Aufruf des Konstruktors des Objektes. Diese doppelte Aktion beeinträchtigt die Ausführungszeit.

2) Konstante Objekte oder Referenzen können nicht durch die Zuweisung mit Werten versehen werden.

3) Klassen ohne Default-Konstruktor können nicht als Typ für Teilobjekte verwendet werden.


Initialisierungsliste


Eine Initialisierungsliste dient für die direkte Initialisierung von Teilobjekten. Diese Liste wird hinter dem Kopf des Konstruktors, durch einen Doppelpunkt getrennt, angegeben. Eine Initialisierungsliste besteht aus den Namen der Teilobjekten und seinen Anfangswerten.

 (image: https://hssm.hqedv.de/uploads/ObjProg05Beziehungen/oop22.gif)

⇒ Demo 1


5.2. Beziehungen zwischen Objekten und ihre Umsetzung in C++


Beziehungen


Man unterscheidet grundsätzlich drei Arten von Beziehungen:

1) Beziehungen zwischen Klassen und Objekten
Die Objekte, die zu einer Klasse gehören, werden als Exemplare (Instanze) dieser Klasse bezeichnet.

2) Beziehungen zwischen Klassen
Diese Beziehung wird durch Vererbung definiert. Die abgeleitete Klasse steht zur Basisklasse in einer Ist-Beziehung.

3 )Beziehungen zwischen Objekten
Objekte stehen in Beziehungen, wenn sie sich kennen. Ein Objekt steht in einer Hat-Beziehung zu anderem, wenn es das anderen Objekt als Attribut besitzt.


Beziehungen in UML


UML (Unified Modeling Language) ist eine Sprache, um objektorientierte Systeme zu beschreiben.

Die Ergebnisse der objektorientierten Analyse (OOA) und des objektorientierten Designs (OOD) können in einer normierten Form beschrieben werden. Damit können Analyse- und Entwurfsfehler z.B. noch vor der Implementierung entdeckt werden.

⇒ Demo 2


Arten von Objekt-Beziehungen


Die Arten sind in der UML unabhängig von konkreter Programmiersprache standardisiert:

1) Einfache Assoziation
2) Aggregation
3) Komposition

Objekt-Beziehungen werden ganz allgemein auch Assoziation genannt.

Eine in UML modellierte Beziehung lässt sich nicht „eins-zu-eins“ in C++ umsetzen.

Die einfache Assoziation (auch Benutzt-Beziehung) bedeutet gleichrangige Beziehung zwischen Objekten.

UML- Klassendiagramm für unidirektionale Assoziation:

 (image: https://hssm.hqedv.de/uploads/ObjProg05Beziehungen/oop23.gif)

Ein Objekt der Klasse „Beruf“ kennt ein anderes Objekt der Klasse „Werkzeug“.

Obwohl in UML eine Assoziation als eine Linie zwischen den Klassenkästchen dargestellt wird, ist eine Assoziation eine Beziehung zwischen Objekten – den Exemplaren dieser Klassen.


Die einfache Assoziation kann in C umgesetzt sein:

1) als ein lokales Objekt,
2) als Parameterobjekt,
3) als referenziertes Attribut-Objekt

Beispiel:

Ein lokales Objekt der Klasse „Werkzeug“ wird in einer Methode der Klasse „Beruf“ angelegt:

     class Werkzeug { public:   void g(){ }   };
     class Beruf
     {    public:   void p(){ Werkzeug w1;  w1.g(); }
     };


⇒ Demo 3



CategoryObjProg
Diese Seite wurde noch nicht kommentiert.
Valid XHTML   |   Valid CSS:   |   Powered by WikkaWiki