Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Benutzerdefinierte Datentypen (1) Benutzerdefinierte Abstrakte Datentypen (ADT) möglich: –Zustand: Tupelstruktur –Verhalten: Zugriffsfunktionen (Methoden)

Ähnliche Präsentationen


Präsentation zum Thema: "Benutzerdefinierte Datentypen (1) Benutzerdefinierte Abstrakte Datentypen (ADT) möglich: –Zustand: Tupelstruktur –Verhalten: Zugriffsfunktionen (Methoden)"—  Präsentation transkript:

1 Benutzerdefinierte Datentypen (1) Benutzerdefinierte Abstrakte Datentypen (ADT) möglich: –Zustand: Tupelstruktur –Verhalten: Zugriffsfunktionen (Methoden) Methoden: spezielle Funktionen, die an Typ gebunden sind Trennung zwischen Methodensignatur und - implementierung Beispiel: create type Punkt as (x real, y real, z real) method Punkt (x real, y real, z real) returns Punkt, method addition (p Punkt) returns Punkt, method distanz (p Punkt) returns real, method nullDistanz () returns real; Initialisierungsmethode: Aufruf zur Erzeugung neuer Objekte

2 Benutzerdefinierte Datentypen (2) Implementierungen der Methoden: create method Punkt (x real, y real, z real) for Punkt begin set self.x = x; set self.y = y; set self.z = z; return self; end; create method addition (p Punkt) for Punkt return Punkt ( self.x + p.x, self.y + p.y, self.z + p.z ); create method distanz (p Punkt) for Punkt begin declare dx real; declare dy real; declare dz real; set dx = self.x - p.x; set dy = self.y - p.y; set dz = self.z - p.z; return ( sqrt ( dx  dx + dy  dy + dz  dz ) ); end; create method nullDistanz () for Punkt return self.distanz ( Punkt (0.0, 0.0, 0.0) ); selfObjektbezeichner, an den jeweils die Methode zur Laufzeit gebunden wird

3 Literale und Objekte (1) Für benutzerdefinierte Datentypen lassen sich Literale (embedding) oder Objekte (linking) erzeugen. Beispiel für Literal: Datentyp Kante ist über zwei Punkte definiert: create type Kante as ( P1 Punkt, P2 Punkt ); Beispiel für Objekt: Einführung von Referenz-Attributen, die Objektidentifikatoren aufnehmen. create type Kante as ( P1 ref (Punkt), P2 ref (Punkt) ); Für ref-Attribute gilt automatische Dereferenzierung.

4 Literale und Objekte (2) Literale (Kopiersemantik) Objekte (Referenzsemantik) P1: x: 4.0 y: 0.0 z: 0.0 P2: x: 2.0 y: 0.0 z: 0.0 P1: x: 2.0 y: 0.0 z: 0.0 P2: x: 2.0 y: 0.0 z: 1.0 x: 4.0 y: 0.0 z: 0.0 x: 2.0 y: 0.0 z: 0.0 x: 2.0 y: 0.0 z:

5 Mengenwertige Attribute: Arrays Charakteristika: Innerhalb der Tupelkonstruktion eines Datentyps können Attribute mengenwertig mittels eines Arrays sein. Hierzu existiert der Typkonstruktor array[n], wobei n die maximale Anzahl von Elementen angibt. Arrays von Arrays, also mehrdimensionale Arrays sind nicht erlaubt Andere Kollektionstypen (set, multiset, list) kommen vermutlich erst in SQL-4 Beispiele: create type Fläche as ( Kanten ref(Kante) array[1024] ); create type Vielflächner as ( Flächen Fläche array[512] ); Array von Objektreferenzen Array von Objektliteralen


Herunterladen ppt "Benutzerdefinierte Datentypen (1) Benutzerdefinierte Abstrakte Datentypen (ADT) möglich: –Zustand: Tupelstruktur –Verhalten: Zugriffsfunktionen (Methoden)"

Ähnliche Präsentationen


Google-Anzeigen