Main-Methode


Eine ganz besondere Methode

Selbst dieses minimale Java-Programm besteht aus einigen Komponenten, die einer Erklärung bedürfen.

public class JavaInstallation{
 public static void main(String[] args){}
}

In Deutsch übersetzt heisst es soviel wie:

Öffentliche Klasse JavaInstallation{
 öffentliche statische Methode ohne Rückgabewert(Eingabeparameter Zeichenkettenfeld mit dem Namen args){tue nichts}
}

Das Schlüsselwort, welches diese Java-Klasse zu etwas besonderem macht ist „main“. Dieser Name ist nicht zufällig gewählt, sondern es definiert den Einsprungspunkt für den Java Compiler.
Dadurch wird diese Klasse eine ausführbare Klasse, davon darf es genau eine im Programm geben, nicht mehr, nicht weniger.

Probieren wir aus was geschieht, wenn die Methode nicht „main“ heißt.

public class JavaInstallation{
 public static void niam(String[] args){}
}

main

In Bytecode lässt es sich kompilieren, aber das Ausführen klappt nicht, Java kann keine Hauptklasse finden.

Warum tritt aber der Fehler nicht schon bei der Kompilierung auf? Weil wir viele unterschiedliche Klassen programmieren dürfen, welche auch in unterschiedlichen Textdateien definiert sein dürfen.  Daher war es in Ordnung, dass es in dieser einen Klasse keine Main-Methode gab. Zur Laufzeit aber ist aufgefallen, dass kein Einsprungspunkt existiert.

Ein nächster Test, wir definieren keinen String-Array sondern einen String.

public class JavaInstallation{
 public static void main(String args){}
}

main1

Auch dies funktioniert nicht, es muss offensichtlich ein String-Array sein. Und so ist bei der Main-Methode vieles fest vorgeschrieben.

  1. Die Funktion trägt den Namen main (Kleinbuchstaben)
  2. Sie ist öffentlich – public
  3. Sie ist statisch – static
  4. Sie gibt keine Werte zurück – void
  5. void muss direkt vor dem Methodennamen stehen (Leerzeichen erlaubt)
  6. Sie hat als Parameter ein Array von Strings
  7. Sie hat einen Rumpf – {}
  8. Die Klasse muss public sein

Alles andere ist änderbar und in der OCA-Prüfung wird es sich ändern.

public class klaSse{
 static public     void     main(String marble[]){}
}

Wird diese Klasse kompilieren? Ist sie ausführbar? Probiert es selbst aus! Nicht vergessen es unter dem Dateinamen klaSse.java zu speichern.

Kommentar erstellen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.