Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Objektorientierte Datenbanken

Ähnliche Präsentationen


Präsentation zum Thema: "Objektorientierte Datenbanken"—  Präsentation transkript:

1 Objektorientierte Datenbanken
Ralf Möller, FH-Wedel Beim vorigen Mal: Objektorientierte Modellierung auf Entwurfsebene am Beispiel UML Heute: Umsetzung in objektorientierte Modellierung auf Implementierungsebene am Beispiel Java Lernziele: Java aus UML-Sicht verstehen Kurzeinführung in OOP am Beispiel Java In Übungen noch vertieft

2 Wiederholung UML Klassen und Instanzen Klassenbeziehungen
Attribute Operationen Klassenbeziehungen Generalisierung, Spezialisierung Auf Klassenebene beschriebene Instanzenbeziehungen Relationen: Assoziationen, Komposition, Aggregation,

3 Sichtbarkeit, Namensraumverwaltung
In UML Moduln in Java Packages genannt Import-Mechanismus in Java: import java.util.*; Export-Mechanismus in Java: Kennzeichnung des Exports von Namen in einem speziellen Package durch Sichtbarkeitsattribute bei den Namen public protected private Beispiele siehe unten

4 Variablen und Typen Variablen in Programmen speichern Werte und Objektreferenzen Wertebereich durch Angabe von Typen eingeschränkt Initialisierung möglich (optional) Beispiele: int port; int port = 1234;

5 Basis-Datentypen: sog. Werte in Java
Beschreibung immutabler einfacher Objekte Beschreibung des Wertebereichs von Attributen, Variablen usw. Zahlen: int, float, ... Vordefinierte Verknüpfungsoperationen (==, +, -, ...) Wahrheitswerte: boolean Vordefinierte Verknüpfungsoperationen (==, and, or, not, ...) Zeichen (Unicode): char Vordefinierte Verknüpfungsoperationen (==, ...)

6 Klassen und Typen Jede Klasse definiert auch einen Typ (mit gleichem Namen) public class Rechnung { int preis; public void drucken () { } public void stornieren() { } }

7 Attribute (Felder, Instanzvariablen)
In Java Objektspezifische Attribute zusätzlich: sog. statische Attribute Durch static markiert Beispiel (Erweiterung der vorher definierten Klasse um mwst): public class Rechnung { public static int mwst = 16; pubic int preis; } Statische Attribute sind der Klasse zugeordnet Wertebereich von Attributen durch Typangabe beschrieben

8 Operationen (in Java Methoden genannt)
Statische vs. objektspezifische Methoden Methodenarten: Prozeduren vs. Funktionen Methodenkopf und Methodenrumpf Methodenrumpf besteht aus Java-Programmcode Java ist eine klassische Programmiersprache mit entsprechenden Kontrollstrukturen, Anweisungen und Ausdrücken Direkter Zugriff auf Attribute der Klasse (zu der die Methode gehört) nur im Rumpf einer objektspezifischen Methode Attributreferenzen wie Variablenreferenzen notiert

9 Java-Anweisungen im Methodenrumpf
Zuweisungen: i = 42; Fallunterscheidungen: if (i == 42) { } else { } Schleife: while (i < 42) { ... }

10 Methoden [Sichtbarkeit] [static] [Ergebnistyp] Name ([Typ Name {, Typ Name}]) Prozeduren Ergebnistyp: void Prozedurenaufrufe (s.u.) nur als Anweisungen Funktionen Ergebnis bestimmt mit: return Ausdruck im Rumpf einer Methode Funktionsaufrufe (s.u.) nur in Ausdrücken verwendbar

11 Objekterzeugung Syntax: new Klassenname Beispiel
Rechnung r1 = new Rechnung;

12 Initialisierungsprozeduren (Creators)
Methodenname = Klassenname Klassenname([Typ Parameter {, Typ Parameter}]) Zugriff auf Attribute der neuen Instanz im Rumpf Aufruf: new Klassenname([Audruck {, Ausdruck}]) Erzeugung einer Instanz einer Klasse unter Verwendung einer neuer OID Ausführung der „passenden“ Initialisierungsprozedur In Java keine Destruktoren notwendig, da automatische Speicherrückgewinnung bzgl. nicht mehr referenzierter Objekte in Java-Laufzeitsystem integriert (garbage collector).

13 Beispiel public class Rechnung { public static int mwst = 16; pubic int preis; public Rechnung (int init) { preis = init } } Rechnung r1 = new Rechnung(100); Rechnung r2 = new Rechnung(200); Erzeugung zweier Rechnungsinstanzen mit jeweils unterschiedlichem Wert für das Attribut preis Die Rechnungsinstanzen sind hier an Variablen r1 und r2 gebunden

14 Rumpf der Methoden für Rechnungen
public class Rechnung { public static int mwst = 16; pubic int preis; public Rechnung (int init) { preis = init } public void drucken () { System.out.println(“Der Preis beträgt:“); System.out.println(preis * (1 + mwst/100)); } }

15 Zugriff auf Attribute Im Rumpf von Methoden der definierenden Klasse direkt über Namen: Beispiel: preis = 88; Im Rumpf von Methoden außerhalb der definierenden Klasse: Instanzenspezifische Attribute: r1.preis = 333; Statische Attribute: Rechnung.mwst = 17;

16 Operationsaufruf Statisch Objektspezifisch
Angabe der Klasse und des Methodennamens Klassenname . Methodenname ([Ausdruck {, Ausdruck}]) Objektspezifisch Ausdruck . Methodenname ([Ausdruck {, Ausdruck}]) Metapher des Sendens von Nachrichten

17 Zugriff auf Methoden: Beispiel
r1.drucken() Der Preis beträgt: 116 r2.drucken() Der Preis beträgt: 232

18 Zusammenfassung, Kernpunkte
Objektorientierte Modellierung auf Entwurfsebene umgesetzt in Implementierungsebene am Beispiel von Java Klassen, Attribute, Methoden, Instanzen, new, Initialisierungsprozeduren

19 Was kommt beim nächsten Mal?
Fortsetzung der Umsetzung von UML durch Java


Herunterladen ppt "Objektorientierte Datenbanken"

Ähnliche Präsentationen


Google-Anzeigen