Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Objektorientierte Datenbanken zBeim vorigen Mal: yObjektorientierte Modellierung auf Entwurfsebene am Beispiel UML zHeute: yUmsetzung in objektorientierte.

Ähnliche Präsentationen


Präsentation zum Thema: "Objektorientierte Datenbanken zBeim vorigen Mal: yObjektorientierte Modellierung auf Entwurfsebene am Beispiel UML zHeute: yUmsetzung in objektorientierte."—  Präsentation transkript:

1 Objektorientierte Datenbanken zBeim vorigen Mal: yObjektorientierte Modellierung auf Entwurfsebene am Beispiel UML zHeute: yUmsetzung in objektorientierte Modellierung auf Implementierungsebene am Beispiel Java zLernziele: yJava aus UML-Sicht verstehen yKurzeinführung in OOP am Beispiel Java xIn Übungen noch vertieft Ralf Möller, FH-Wedel

2 Wiederholung UML zKlassen und Instanzen yAttribute yOperationen zKlassenbeziehungen yGeneralisierung, Spezialisierung zAuf Klassenebene beschriebene Instanzenbeziehungen yRelationen: Assoziationen, Komposition, Aggregation,

3 Sichtbarkeit, Namensraumverwaltung zIn UML Moduln in Java Packages genannt zImport-Mechanismus in Java: yimport java.util.*; zExport-Mechanismus in Java: yKennzeichnung des Exports von Namen in einem speziellen Package durch Sichtbarkeitsattribute bei den Namen xpublic xprotected xprivate yBeispiele siehe unten

4 Variablen und Typen zVariablen in Programmen speichern Werte und Objektreferenzen zWertebereich durch Angabe von Typen eingeschränkt zInitialisierung möglich (optional) zBeispiele: yint port; yint port = 1234;

5 Basis-Datentypen: sog. Werte in Java zBeschreibung immutabler einfacher Objekte zBeschreibung des Wertebereichs von Attributen, Variablen usw. yZahlen: int, float,... xVordefinierte Verknüpfungsoperationen (==, +, -,...) yWahrheitswerte: boolean xVordefinierte Verknüpfungsoperationen (==, and, or, not,...) yZeichen (Unicode): char xVordefinierte Verknüpfungsoperationen (==,...)

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

7 Attribute (Felder, Instanzvariablen) zIn Java yObjektspezifische Attribute yzusätzlich: sog. statische Attribute xDurch static markiert xBeispiel (Erweiterung der vorher definierten Klasse um mwst): public class Rechnung { public static int mwst = 16; pubic int preis;... } xStatische Attribute sind der Klasse zugeordnet zWertebereich von Attributen durch Typangabe beschrieben

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

9 Java-Anweisungen im Methodenrumpf zZuweisungen: i = 42; zFallunterscheidungen: yif (i == 42) {... } else {... } zSchleife: ywhile (i < 42) {... }

10 Methoden z[Sichtbarkeit] [static] [Ergebnistyp] Name ([Typ Name {, Typ Name}]) zProzeduren yErgebnistyp: void yProzedurenaufrufe (s.u.) nur als Anweisungen zFunktionen yErgebnis bestimmt mit: return Ausdruck im Rumpf einer Methode yFunktionsaufrufe (s.u.) nur in Ausdrücken verwendbar

11 Objekterzeugung zSyntax: new Klassenname zBeispiel yRechnung r1 = new Rechnung;

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

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

14 Rumpf der Methoden für Rechnungen zpublic 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)); }... z}

15 Zugriff auf Attribute zIm Rumpf von Methoden der definierenden Klasse direkt über Namen: yBeispiel: preis = 88; zIm Rumpf von Methoden außerhalb der definierenden Klasse: yInstanzenspezifische Attribute: r1.preis = 333; yStatische Attribute: Rechnung.mwst = 17;

16 Operationsaufruf zStatisch yAngabe der Klasse und des Methodennamens yKlassenname. Methodenname ([Ausdruck {, Ausdruck}]) zObjektspezifisch yAusdruck. Methodenname ([Ausdruck {, Ausdruck}]) yMetapher des Sendens von Nachrichten

17 Zugriff auf Methoden: Beispiel zr1.drucken() yDer Preis beträgt: 116 zr2.drucken() yDer Preis beträgt: 232

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

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


Herunterladen ppt "Objektorientierte Datenbanken zBeim vorigen Mal: yObjektorientierte Modellierung auf Entwurfsebene am Beispiel UML zHeute: yUmsetzung in objektorientierte."

Ähnliche Präsentationen


Google-Anzeigen