Javas Methodensyntax

Die Methodensyntax in Java lautet:



[<modifier>*] <return-type> <name> ([<parameter>*]) [throws <exception>* ] {
 <Block>
}

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)


Beispiele

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;
}


Modellfall

Methoden werden immer innherhalb von Klassen deklariert und definiert. Beim Aufruf sind im Modellfall drei Objekte beteiligt.

Deklaration / Definition

public class Modell {
  RetClass methode(ParamClass param) {
    RetClass result;
    // TODO result = ... , param , ...;
    return result;       
  }
}

Aufruf

Modell mod; // TODO mod = ...
ParamClass par; // TODO par = ...
RetClass res;

res = mod.methode(par);

Sonderfall: Funktionen

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 / Definition

public class FModell {
  static RetClass methode(ParamClass param) {
    RetClass result;
    // TODO result = ... , param , ...;
    return result;       
  }
}

Aufruf

ParamClass par; // TODO par = ...
RetClass res;

res = FModell.methode(par);

Sonderfall: Prozeduren / Subroutinen

Allgemeine Prozeduren (manchmal auch Subroutinen genannt), haben keinen Return-Wert.

Deklaration / Definition

public class PModell {
  void methode(ParamClass param) {
    // TODO: define statements 
  }
}

Aufruf

PModell pMod; // TODO pMod = ...
ParamClass par; // TODO par = ...

pMod.methode(par);