Funktionen und Methoden

Previous  Next

 

 

 

26.02.2010

Funktionen und Methoden

 

Funktionen sind kleine, eigenständige Programmteile, die jeweils eine ganz spezielle Aufgabe erfüllen können, z.B. das Öffnen einer Verbindung zu einer Datei mit hmtoggle_plus1 openRead( ) XDEV NLS: öffneZumLesen ( ). Bei Verwendung einer Funktion zählt in der Praxis nur das Ergebnis das die Funktion liefert. Wie die Funktion zu ihrem Ergebnis kommt, ist für den Entwickler nicht von Interesse. Der Entwickler verlässt sich darauf, dass die Funktion korrekt funktioniert. Der eigentliche Programmcode der Funktion, der u.U. sehr groß sein kann, bleibt verborgen. Die Funktion ist somit eine Blackbox.

 

In der Programmierung versucht man stets komplexer werdende Programme in viele kleine Funktionen und Funktionsklassen aufzusplitten, welche völlig unabhängig von einander funktionieren. Dadurch schrumpft der Programmcode deutlich und die Wartbarkeit erhöht sich um ein Vielfaches. 

 

 

» Begriffs-Definition «

Funktionen, die keinen Rückgabewert liefern, werden allgemein auch als Prozeduren bezeichnet. Um eine Verwechslung mit klassischen Basic-Prozeduren zu vermeiden, wird der Begriff Prozedur in XDEV 2 nicht verwendet.

 

In der objektorientierten Programmierung wird im Grunde jede Funktion oder Prozedur als Methode bezeichnet. Da XDEV 2 auf die objektorientierten Programmiersprache Java aufsetzt, wird in XDEV 2 überwiegend die Bezeichnung Methode benutzt, während der Begriff Funktion für benutzerdefinierte Funktionen steht. Hin und wieder wird der Begriff Funktion jedoch auch als Synonym für Methode verwendet (z.B. hier), da der Begriff Funktion vor allem für Einsteiger griffiger ist als Methode.

 

 

» Aufruf «

Methoden aus der XDEV 2 Funktionsbibliothek werden direkt mit ihrem Namen aufgerufen, z.B. hmtoggle_plus1 closeCurrentDialog( ) XDEV NLS: schließeAktuellenDialog ( ). Nach dem Namen folgen immer geschweifte Klammern. Methoden die zu einer GUI-Komponente oder anderen Klasse gehören, z.B.  Virtuellen Tabelle, werden im Code-Editor dagegen ähnlich wie ein Pfad angegeben. Vorne steht immer der Name der GUI-Komponenten bzw. Klasse. Nach einem hmtoggle_plus1 Punkt XDEV NLS: Backslash folgt dann der Methodenname, z.B. hmtoggle_plus1 Formular.save( ) XDEV NLS: Formular.speichern ( ). Bei der Eingabe des hmtoggle_plus1 Punktes XDEV NLS: Backslashs springt automatisch die Auto-Complete-Funktion des Code-Editors an, der Sie beim Auffinden der gesuchten Methode unterstützte.

 

Funktionen der Funktionsbibliothek:

clip0549

 

Methoden einer GUI-Komponente:

clip0550

 

Aufruf einer Funktion aus der Funktionsbibliothek erfolgt immer über den Funktionsnamen, z.B.:

 

 

1

closeCurrentDialog();

1

closeCurrentDialog()

1

schließeAktuellenDialog( )

 

 

Beim Aufruf einer Methode einer GUI-Komponente oder anderen Klasse wird auch der Komponenten- oder Klassenname vor den Methdoennamen gesetzt, z.B.:

 

1

Formular.save();

1

Formular.save()

1

Formular\speichern ( )

 

 

 

 

» Parameter «

Die meisten Methoden benötigen einen, oftmals sogar mehrere Eingangswerte für die Ausführung. Z.B. benötigt eine Methode zur Berechnung des Bruttopreises die Eingangswerte Nettopreis und Steuersatz. Entsprechende Eingangswerte werden als Parameter bezeichnet. Dabei kann es sich um feste Werten, Variablen, Konstanten sowie um andere Methoden handeln. Parameter werden nach dem Methodennamen mit Komma getrennt in Klammern angegeben. Welche Parameter übergeben werden müssen und in welcher Reihenfloge, wird beim Anlegen einer neuen Methode bestimmt und ist in der Methoden-Beschreibung dokumentiert. Beispielsweise benötigt die Methode hmtoggle_plus1 showMessage(String title, String message) XDEV NLS: zeigeNachricht ( Zeichenkette titel, Zeichenkette nachricht) 2 Parameter:

 

hmtoggle_plus1XDEV Object Language

1

showMessage("Hinweis", "Vorgang war erfolgreich");

 

clip0551

hmtoggle_plus1XDEV Basic

1

showMessage("Hinweis", "Vorgang war erfolgreich")

 

clip0551

hmtoggle_plus1XDEV NLS

1

zeigeNachricht ("Hinweis", "Vorgang war erfolgreich")

 

clip0552

 

Hinweis: Nicht jede Methode benötigt einen Parameter. Viele Methoden kommen ohne Parameter aus, z.B. hmtoggle_plus1 Formular.save( ) XDEV NLS: Formular.speichern ( ).

 

 

» Rückgabewert «

Viele Methoden liefern als Ergebnis einen Wert zurück, z.B. jede mathematische Funktion oder Methoden zur Verarbeitung von Zeichenketten. Wenn eine Methode einen Rückgabewert liefert, dann darf der Aufruf nicht mehr alleine in einer Codezeile stehen, da die Methode wie ein Platzhalter für das spätere Ergebnis steht. Die Methode muss deshalb einer Variable zugewiesen werden oder innerhalb eines anderen Ausdrucks stehen, z.B. in einer Bedingung, als Parameter einer anderen Methode, u.Ä.

 

Variante

Beispiel

Variablen-

Wertzuweisung

Eine Methode mit Rückgabewert kann einer Variable zugewiesen werden. Die Methode steht als Platzhalter für ihren Rückgabewert. Damit Sie auch den richtigen Variablen-Typen wählen können, wird der Datentyp des Rückgabewertes, z.B. hmtoggle_plus1 Int XDEV NLS: Ganzzahl, immer in der Methoden-Beschreibung mit angegeben, z.B. hmtoggle_plus1 length(String str) Int XDEV NLS: länge(Zeichenkette str) Ganzzahl.

 

1

2

3

4

String wort = "Einfacher programmieren";

Int länge;

 

länge = length(wort);

1

2

3

4

String wort = "Einfacher programmieren"

Int länge

 

länge = length(wort)

1

Zeichenkette wort = "Einfacher programmieren"

Ganzzahl länge

 

länge = länge(wort)

 

In Bedingung

Eine Methode mit Rückgabewert kann Teil einer Bedingung sein. Die Methode steht als Platzhalter für ihren Rückgabewert.

 

1

2

3

 

4

String wort = "Einfacher programmieren"

 

if (length(wort) > 10);

{

         // Anweisungsblock

}

1

2

3

4

String wort = "Einfacher programmieren"

 

If length(wort) > 10

       // Anweisungsblock

1

2

3

4

Zeichenkette wort = "Einfacher programmieren"

 

Wenn ( länge(wort) > 10 )

             // Anweisungsblock

 

Parameter in Methode

Eine Methode mit Rückgabewert kann einer anderen Methode als Parameter übergeben werden. Die Methode steht als Platzhalter für ihren Rückgabewert.

 

1

2

String wort = "Einfacher programmieren";

showMessage("",length(wort));

1

2

String wort = "Einfacher programmieren"

showMessage("",length(wort))

1

2

Zeichenkette wort = "Einfacher programmieren"

zeigeNachricht("",length(wort))

 

 

 

Hinweis: Eine Methode muss nicht zwingend einen Rückgabewert liefern. Methoden die keinen Rückgabewert liefern lassen sich in der Funktionsbibliothek am Schlüsselwort void erkennen, z.B. hmtoggle_plus1 showMessage(String title, String message) void XDEV NLS: zeigeNachricht ( Zeichenkette titel, Zeichenkette nachricht) void. Nur solche Methoden dürfen alleine in einer Codezeile stehen.

 

 

» Lokaler oder externer Aufruf «

Mit Hilfe des Schlüsselwortes hmtoggle_plus1 this | XDEV NLS: Lokal unterscheidet der Code-Editor, ob der Methodenaufruf im Code der GUI-Komponente erfolgt, zu der die Methode gehört oder von außerhalb.

 

Ort des Aufrufs

Erklärung

Außerhalb der eigenen Komponente

Wenn eine Methode, z.B. hmtoggle_plus1 save( ) | XDEV NLS: speichern ( ), die zu der GUI-Komponente Formular gehört, von einer anderen, externen Komponente aufgerufen wird, z.B. Button, dann erfolgt der Aufruf über den Namen der Komponente, zu der die Methode gehört, z.B. Formular.

 

1

Formular.save();

1

Formular.save()

1

Formular\speichere

 

In der eigenen Komponente

Wenn eine Methode, z.B. hmtoggle_plus1 save( ) | XDEV NLS: speichern ( ), innerhalb der eigenen GUI-Komponente aufgerufen wird, z.B. Formular, dann erfolgt der Aufruf mit Hilfe des Schlüsselwortes hmtoggle_plus1 this | XDEV NLS: Lokal.

 

1

this.save();

1

this.save()

1

Lokal\speichere

 

 

 

» XDEV 2 Funktionsbibliothek «

XDEV 2  bietet Ihnen eine sehr umfangreiche Funktionsbibliothek mit zahlreichen Methoden, die Ihnen eine Menge Programmierarbeit abnehmen.

 

 

» Eigene Funktionen «

XDEV 2 ermöglicht Ihnen auch eigene Funktionen zu schreiben.

 

 

Basiswissen: Variablen, Funktionsbibliothek.