Java™ und Objektorientierung | |
Java/OO | Druckversion |
Die Methodensyntax in Java lautet:
Ein Stern '*' sagt aus, dass ein Feld mehrmals angewendet werden darf.
Eckige Klammern '[' und ']' bedeuten, dass das Feld optional ist.
Dabei haben die Felder folgende Bedeutungen:
<modifier> | :== | Modifizierer: public, protected, private, static, strictfp, native, abstract, final, synchronized. |
<return-type> | :== | Rückgabewert: void | <Datentyp> |
<name> | :== | Identifier: Name der Methode |
<parameter> | :== | Übergabewerte: [final] <Datentyp> <Name> Mit Kommata (,) getrennt. |
<exception> | :== | Exception Type: Name der Exceptionklasse (Siehe: Exceptions) |
<Block> | :== | Anweisungen (Siehe: Anweisungen) |
public static void main (String [] args) { System.out.println("Hallo Welt."); }
private static ByteToCharConverter getBTCConverter(String encoding) throws UnsupportedEncodingException { ByteToCharConverter btc = null; if (btcConverter == null) btcConverter = new ThreadLocal(); SoftReference ref = (SoftReference)(btcConverter.get()); if (ref==null || (btc = (ByteToCharConverter)ref.get())==null || !encoding.equals(btc.getCharacterEncoding())) { btc = ByteToCharConverter.getConverter(encoding); btcConverter.set(new SoftReference(btc)); } else { btc.reset(); } return btc; }
Methoden werden immer innherhalb von Klassen deklariert und definiert. Beim Aufruf sind im Modellfall drei Objekte beteiligt.
Deklaration / Definitionpublic class Modell { RetClass methode(ParamClass param) { RetClass result; // TODO result = ... , param , ...; return result; } } |
AufrufModell mod; // TODO mod = ... ParamClass par; // TODO par = ... RetClass res; res = mod.methode(par); |
Funktionen zeichnen sich dadurch aus, dass sie einen Rückgabewert aufweisen. Sie sollten keine Nebeneffekte erzeugen und so besitzen sie oft keinen this-Pointer. Sie werden also meist auf der Klasse (und nicht auf Objekten) aufgerufen.
Deklaration / Definitionpublic class FModell { static RetClass methode(ParamClass param) { RetClass result; // TODO result = ... , param , ...; return result; } } |
AufrufParamClass par; // TODO par = ... RetClass res; res = FModell.methode(par); |
Allgemeine Prozeduren (manchmal auch Subroutinen genannt), haben keinen Return-Wert.
Deklaration / Definitionpublic class PModell { void methode(ParamClass param) { // TODO: define statements } } |
AufrufPModell pMod; // TODO pMod = ... ParamClass par; // TODO par = ... pMod.methode(par); |