|
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 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. 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 Punkt XDEV NLS: Backslash folgt dann der Methodenname, z.B. Formular.save( ) XDEV NLS: Formular.speichern ( ). Bei der Eingabe des 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:

|
|
Methoden einer GUI-Komponente:

|
|
Aufruf einer Funktion aus der Funktionsbibliothek erfolgt immer über den Funktionsnamen, z.B.:
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.:
|
|
» 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 showMessage(String title, String message) XDEV NLS: zeigeNachricht ( Zeichenkette titel, Zeichenkette nachricht) 2 Parameter:
1
|
showMessage("Hinweis", "Vorgang war erfolgreich");
|

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

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

|
Hinweis: Nicht jede Methode benötigt einen Parameter. Viele Methoden kommen ohne Parameter aus, z.B. 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. Int XDEV NLS: Ganzzahl, immer in der Methoden-Beschreibung mit angegeben, z.B. 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. 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 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. 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.
|
In der eigenen Komponente
|
Wenn eine Methode, z.B. save( ) | XDEV NLS: speichern ( ), innerhalb der eigenen GUI-Komponente aufgerufen wird, z.B. Formular, dann erfolgt der Aufruf mit Hilfe des Schlüsselwortes this | XDEV NLS: Lokal.
|
» 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.
|