Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.

Ähnliche Präsentationen


Präsentation zum Thema: "OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt."—  Präsentation transkript:

1 OO implementieren Teil IV Objekte erzeugen

2 © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt befindet sich nach der Instanzierung im Speicher Der Speicherort ist die Referenz des Objektes java 001F 3A00 0010 10F0

3 © René ProbstModul 226IV - 3 Der Konstruktor Jede Klasse verfügt über einen oder mehrere Konstruktoren. Default-Konstruktor ohne Parameter Parametrierte Konstruktoren Code im Konstruktor definiert den Aufbau des Objektes Initialisieren von Werten Einrichten von Beziehungen …

4 © René ProbstModul 226IV - 4 Aufruf des Konstruktors 1.Deklaration eines Attributes (Typ und Name) MyClass myObj; 2.Erzeugung über new-Operator (Inhalt) myObj = new MyClass(); 3.Ausführung des Code im Konstruktor Reservieren von Speicherplatz und setzen von Attributen 4.Zuweisung der Referenz für Zugriff Adresse des Objekts im Speicher 5.Zugriff auf Objekt myObj.getCounter();

5 © René ProbstModul 226IV - 5 Der Default-Konstruktor Standardkonstruktor jeder Klasse wird durch die oberste Klasse (Klasse Object) bereitgestellt. wird immer aufgerufen, wenn kein Konstruktor programmiert wird. kann überschrieben werden public class MyClass{ private int counter; public MyClass(){ counter = 10; }

6 © René ProbstModul 226IV - 6 Parametrierte Konstruktoren Übergabe von Daten für die Instanzierung der Klasse public class MyClass{ private int counter; public MyClass(){ // Standardkonstruktor counter = 10; } public MyClass(int startValue){ // parametrierter Konstruktor counter = startValue; }

7 © René ProbstModul 226IV - 7 Konstruktoren Überladen Eine Klasse kann beliebige viele Konstruktoren haben. Sie müssen sich in der Parameterliste unterscheiden. public MyClass() {…} public MyClass(int startValue){…} Public MyClass(float startValue){…} Public MyClass(int startValue, String desc){…}

8 © René ProbstModul 226IV - 8 Kaskade von Konstruktoren Regel in OO : alles nur einmal Programmieren! Unterschiedliche Parameter für Instanzierung public class Person{ private String name, firstname; public Person(){ // set the default values name = none; firstname = none; } public Person(String theName){ this(); name = theName; } public Person(String theName, String first){ this(theName) firstName = first; }

9 © René ProbstModul 226IV - 9 Konstruktor und Vererbung Bei Vererbung wird immer der Konstruktor der Oberklasse zuerst ausgeführt Defaultkonstruktor Existiert in der Oberklasse kein Default-Konstruktor, muss der passende parametrierte Konstruktor verfügbar sein! Public class ClassA{ public ClassA(int x){…} // kein Default } Public class ClassB extends ClassA{ public ClassB(int x){ // Aufruf muss super(x); // explizit erfolgen } }

10 © René ProbstModul 226IV - 10 Erzeugen einer Applikation Keine Regel, nur Tipp! Eigene Erzeuger-Klasse mit main-Methode 1.Klassen der Datenbasis (Data-Layer) 2.Klassen der Verarbeitung (Business-Layer) 3.Klassen der Darstellung (Visual-Layer) Beispiel public static void main(){ Data dbLayer = new Data(); Business business = new Business(dbLayer); GUI appGUI = new GUI(business); } Gui-Layer kennt Business-Layer und dieser die Datenbank

11 © René ProbstModul 226IV - 11 Destruktion Objekte die nicht mehr benötigt werden, müssen aus dem Speicher entfernt werden. Bei Java : myObj = null; Garbage Collection gibt speicher frei Bei C++ nicht referenzierte Objekte bleiben im Speicher Speicherlöcher (RAM wird immer weniger) Möglicher Angriffspunkt für Viren Explizite Destruktion von Objekten nötig

12 © René ProbstModul 226IV - 12 Gleichheit und Identität Es kann viele Objekte einer Klasse geben die gleiche Art Gleichheit Aber unterschiedliche Referenzen (Frida, Vera) Ein Objekt kann viele Referenzen haben gleiche ReferenzIdentität (Elsa und Elsi) Kuh ElsaElsiFridaVera identisch gleich

13 © René ProbstModul 226IV - 13 Literatur : Goll-Weiss-Müller 10.4.4Konstruktoren zur Initialisierung 10.4.5Aufruf eines Konstruktors im Konstruktor 10.5Instantiierung von Klassen 10.6Freigabe von Speicher 11.3.2Konstruktoren bei abgeleiteten Klassen 11.6.3Operatoren für Referenztypen

14 © René ProbstModul 226IV - 14 Stichworte

15 © René ProbstModul 226IV - 15 Merkblätter O7 :Instanzierung

16 © René ProbstModul 226IV - 16 Übungen 4.1. :Instanzierung mit dem Default- Konstruktor 4.2. :Konstruktor mit einem Parameter 4.3. :Konstruktor mit mehreren Parametern 4.4. :Etwas zum tüfteln


Herunterladen ppt "OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt."

Ähnliche Präsentationen


Google-Anzeigen