Präsentation herunterladen
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
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.