Werkzeugkasten Werkzeugkasten 1 Vokabelheft Java – Python – Delphi Datentypen Java einfache Datentypen int, float, boolean, char, ... Zeichenkette String, z. B. "Hallo" Felddeklaration KLASSENBEZEICHNER[] feldbezeichner; feldbezeichner = new KLASSENBEZEICHNER[Elementanzahl]; Zugriff auf Feldelement feldbezeichner[n]; Der Index n darf zwischen 0 und Elementanzahl – 1 liegen. Feld (mehrdimensional) Wie oben, nur jeweils mit einer der Dimension entsprechenden Anzahl an eckigen Klammern. z. B. feldbezeichner[n][m]; Deklaration Klassendeklaration class KLASSENNAME { //Attributdeklaration //Deklaration des Konstruktors KLASSENNAME() { ... } //Methodendeklaration } Attributdeklaration int kundenzahl; PATIENT p; Methodendeklaration (ohne Rückgabewert) void Methodenname(Parameterliste) { //Anweisungsfolge } Funktion / Methodendeklaration (mit Rückgabewert) RückgabeTyp Methodenname(Parameterliste) { // Anweisungsfolge return BezeichnerDesRückgabewerts; } Zuweisung und Methodenaufruf 162 Zuweisung Attributname = WertNeu; Methodenaufruf innerhalb einer Klasse Methodenname(Parameterliste); Methodenaufruf an referenziertes Objekt Referenzattributname.Methodenname(Parameterliste); z. B. fenster.GroesseSetzen(30, 30); Werkzeugkasten Python Delphi nicht typisiert Integer, Real, Boolean, Char, … ’Hallo’ oder "Hallo" String In Python wird das übergeordnete Konstrukt Liste verwendet. feldbezeichner = [] Var feldbezeichner: array[startindex .. endindex] of Datentyp; feldbezeichner[n] Der Index n darf zwischen 0 und Elementanzahl – 1 liegen. feldbezeichner[n]; Elemente von Liste können wieder Listen sein. z. B. array[1..5, 1..5] of Integer; class KLASSENNAME Type KlassenName = class; ... end; #Deklaration des Konstruktors __INIT__(self) ... #Methodendeklarationen Der Konstruktor wird bei den Methoden durch das Schlüsselwort constructor und durch den Bezeichner Create gekennzeichnet. z. B.: constructor Create; Unnötig, da nicht typisiert; ACHTUNG: Im Konstruktor muss ein Wert zugewiesen werden. Var i:Integer; def Methodenname(self, Parameterliste) #Anweisungsfolge procedure Methodenname(Parameterliste); begin //Anweisungsfolge end; def Methodenname(self, Parameterliste) #Anweisungsfolge return BezeichnerDesRückgabewerts function Methodenname(Parameterliste): RückgabeTyp; begin //Anweisungsfolge Methodenname := BezeichnerDesRückgabewerts; end; Attributname = WertNeu Attributname := WertNeu; self.Methodenname(Parameterliste) wie Java self.Referenzattributname.Methodenname(Parameterliste) z. B.: self.fenster.GroesseSetzen(30, 30); wie Java 163 Werkzeugkasten Objektreferenzen Java Erzeugen eines Objekts NameDesReferenzattributs = new KONSTRUKTOR (Parameterliste) z. B. k = new KUNDE(3); Referenz eines Objekts auf sich selbst vordefiniertes Referenzattribut this Kontrollstrukturen bedingte Anweisung (zweiseitig) if (Bedingung) { //dann-Teil } else { //sonst-Teil } bedingte Anweisung (einseitig) if (Bedingung) { //dann-Teil } Mehrfachauswahl switch (Auswahlkriterium) { case wert1: //Anweisungen für Fall 1 break; case wert2: //Anweisungen für Fall 2 break; default: //Anweisungen für sonst } Zählwiederholung for (i = 0; i < 5; i = i+1) { //Anweisungen } Zugriffsrechte Zugriffsrechte Standard: public: protected: private: Zugriff von überall aus dem Paket uneingeschränkter Zugriff Zugriff aus der Klasse und ihren Unterklassen Zugriff nur innerhalb der Klasse Vererbung 164 Umsetzung class UNTERKLASSE extends OBERKLASSE Aufruf des Konstruktors der Oberklasse super(Parameterliste); Aufruf einer anderen Methode der Oberklasse super.Methodenname(Parameterliste); Werkzeugkasten Python Delphi NameDesReferenzattributs = NameDesReferenzattributs := KLASSENNAME(Parameterliste) Klassenname.Create(Parameterliste); z. B. k = KUNDE(3) Referenzattribut ist der erste Parameter der Methode, in der Regel self. vordefiniertes Referenzattribut self if Bedingung: #dann-Teil else: #sonst-Teil if Bedingung then begin //dann-Teil end else begin //else-Teil end; if Bedingung: #dann-Teil if Bedingung then begin //dann-Teil end; if Auswahlkriterium = = wert1: #Anweisungen für Fall 1 elif Auswahlkriterium == wert2: #Anweisungen für Fall 2 case Auswahlkriterium of wert1: begin //Anweisungen für Fall 1 end; wert2: ... else: #Anweisungen für sonst for i in range (5): #Anweisungen for i:= 0 to 4 do begin //Anweisungen; end; keine private, public, protected (wie Java) class UNTERKLASSE(OBERKLASSE) UNTERKLASSE = class(OBERKLASSE) OBERKLASSE.__init__(Parameterliste) inherit; OBERKLASSE.Methodenname(Parameterliste) inherit Methodenname(Parameterliste); 165