Objektorientierte Programmierung Flashcards
Erklären Sie Nutzen und Aufgabe eines Modells.
Modelle werden zur Problemlösung verwendet. Sie können komplexe sachverhalte so vereinfachen das effizente Lösungen gefunden werden können. Hierbei sollte das Modell möglichst abstrakt und notwendig konkret sein
(irrelavente vs. relevante Infos)
Beschreiben Sie das Vorgehen bei der Modellierung.
Identifikation von: (Vokabular definiert)
1. Konzepten -> Klassen
2. Eigenschaften -> Attribute
3. Operationen -> Methoden
Erklären Sie die Konzepte Klasse, Attribute und Operationen.
Klassen sind komplexe Datentypen die Attribute und Methoden enthalten (Bauplan). Sie ermöglichen die Erstellung von Instanzen (Objekten).
Attribute sind Eigenchaften der Daten bzw. Objekte der Klasse (meist Datentyp + Name).
Operationen, auch Methoden, sind Funktionen der Klasse die Aus und Eingabe der Klasse bedingen (void vs. return).
Erklären Sie Relationen, Multiplizitäten, Rollennamen und Sichtbarkeit.
Im UML Standard sind Beziehungen von Klassen definiert.
Relation: nicht näher definierte *Beziehung (Auto—-Reifen)
*Multiplizität: quantitative grenzen von Relationen (Auto,1—–4,Reifen)
*Rollennamen: gerichtete Multiplizität
(Auto,1<>——-4,Reifen)
*Sichtbarkeit: Wer darf zugreifen (Klasse): public (+) Alle,
protected (#) Unterklassen (Erben),
private (-) nur Klasse
Erklären Sie Objekte.
Objekte sind konkret gespeicherte Werte für Atrribute einer Klasse (Instanzen).
=> Klasse (allg.) –>Obejekt (konkret)
Klassen geben Objekten Attribute und Methoden (Member Funktionen) die natur und Verhalten definiert. Jedes Objekt besitzt eine eindeutige Identität. Objekte können in Beziehung mit einander stehen (siehe ULM).
Erklären Sie Konstruktoren und Destruktoren.
Sie steuern den Lebenszyklus eines Objekts.
-Konstruktoren instanzieren Objekte entweder definiert über angegebene Parameter oder über den default-Konstr. (undefinerte Werte)
-Destruktoren werden aufgerufen wenn Objekte zerstört werden -> default zerstörung am ende der Main (gezielte durch ‘delete’)
Erklären Sie Copy-Konstruktor und Zuweisungsoperator.
copy (O1 = new O)
-initializiert ein Objekt mit den Zuständes eines anderen
-Original bleibt gleich
Zuweisung(O1 = O)
-Objekt besteht schon gleiches Verhalten
Regel der Drei.
Sagt aus, dass wenn ein copy-, zuweisungskonstruktor oder ein Destruktor verwendet wird auch die anderen verwendet werden sollte. Die Regel stellt die ordnungsgemäße Sicherung und Freigabe von Daten im speicher sicher.
Erklären Sie Vererbung in C+
Bei Vererbung erhält eine KLasse (abgeleitete) die Methoden und attribute einer höheren Basisiklasse. Es gibt drei Arten der Vererbung:
1. public -> public (protected) Mitglieder aus Basisklasse in abgeleiteter public (protected)
2. protected -> public und protected mitglieder in abgeleiteter protected
3. privat -> public und protected mitglieder in abgeleiteter privat
-> bei privaten mitgliedern in Basis keine vererbung möglich
Erklären Sie Polymorphismus und virtuelle Funktionen und wenden Sie diese an.
Polymorphismus beschriebt einen Umstand bei dem Objekte durch unterchiedliche Klassen zugegriffen werden kann. Dies passiert wenn funktionen in vererbten klassen den gleichen Namen tragen.
-> stat. Polymor.: bei compilierung wird sich für eine Fuunktion entschieden <=> Dyn. Polymor.: während Laufzeit (pointer)
virtuelle Funktionen sind jene die von abgeleiteten Klassen bewust überschireben werden.