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

Slides:



Advertisements
Ähnliche Präsentationen
M a r c – o l i v e r p a h l Informatik I – Kapitel 7 Klassen und höhere Datentypen Zusammenfassung des Kapitel 7 Küchlin, Weber, Einführung in die Informatik,
Advertisements

Objektorientierte Programmierung
Imperative Programmierung
der Universität Oldenburg
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Definition von Klassen in Java
Anwendungen des OODM auf die ADB / NDB
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Zusammenfassung des Kapitels 8
Objektrelationales Mapping mit JPA Advanced Mapping Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Entity Mapping Jonas Bandi Simon Martinelli.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
Listen Richard Göbel.
Indirekte Adressierung
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Abstrakte Klassen.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Dynamische Webseiten Java servlets.
Programmieren mit JAVA
Programmieren mit JAVA
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
F açade P attern By Nicolas Lanquetin. Façade Pattern Structural Pattern Bietet ein gemeinsames Interface, anstatt vieler Interfaces eines Subsystems.
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
© 2006 MPohlig Grundkurs Informatik mit Java 1 JFrame-Vorlage Step by step by step by step by step by step by step by step by.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
© A. Schwing, 2010Institute of Visual Computing Informatik I for D-MAVT Exercise Session 10.
Teil II Objekte ergeben ein Ganzes
EPROG Tutorium Einheit 4 Klassen und Objekte. Wiederholung Schleifen do... while while for break/continue Strings String char Methoden für Strings Arrays.
Entity Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Advanced Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Algorithmen und Datenstrukturen Übungsmodul 6
Equals, Hashcode und CompareTo Micha Kessler
Common Language Runtime Seminar Softwareentwicklung Wintersemester 2003 Gertraud Orthofer
CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.
Learning By Doing Konstruktoren Gleicher Name wie die Klasse Zur Initialisierung des Objekts, insbesondere mit Parametern Wir immer bei der Objekterzeugung.
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Instanzmethoden
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Einführung in die Programmierung mit Java
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Objektorientierte Programmierung (OOP)
Tutorium Software-Engineering SS14 Florian Manghofer.
, 1 / Javakurs 2012 – Objektorientierung Objektorientierte Programmierung I This work is licensed under the Creative Commons Attribution-ShareAlike 3.0.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Konstruktoren.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Vererbung.
Venusspiegel und Marsschild
Zwei Denkansätze zur Klasse Schlange
Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)
Einführung in die Programmierung mit Java
Grundkurs Informatik 11-13
Von Cem, Maurice und lars
Objektorientierung Klassen und Objekte Dr. Beatrice Amrhein.
Implementieren von Klassen
Grundkurs Informatik 11-13
 Präsentation transkript:

OO implementieren Teil IV Objekte erzeugen

© 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 3A F0

© 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 …

© 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();

© 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; }

© 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; }

© 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){…}

© 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; }

© 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 } }

© 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

© 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

© 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

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

© René ProbstModul 226IV - 14 Stichworte

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

© 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