Erste Schritte

Nun kann es aber endlich losgehen! Die Entwicklungsumgebung wurde hoffentlich korrekt eingerichtet (wenn nicht - dazu sind die vorherigen Seiten und im Zweifelsfall das Forum da) und alles ist startklar. Zunächst muss natürlich - bei einer IDE - z.B. ein Projekt eingerichtet werden. Wichtig ist, dass eine Datei zum Eintragen des Programmcodes angelegt wird. Wenn man nur mit einem Editor arbeitet heißt das, dass einfach eine neue Datei in einem beliebigen (Arbeits-) Ordner erstellt werden muss. Wichtig ist schon die Namensgebung der Datei. Unser erstes Programm wird ein sog. „Hello World“ Programm sein, welches den Benutzer nur freundlich grüßt und sich dann wieder beendet.

Programme im Sinne der Mentalität von Java sind immer Objekte/Instanzen. Um ein Objekt erzeugen zu können, muss eine „Bauanleitung“ des Objekts vorliegen. Diese „Bauanleitung“ nennt man Klasse. Für unser Programm benötigen wir also eine Klasse „HelloWorld“. Die Namensgebung der Datei ist nun dahingehend wichtig, da Java vorschreibt, dass die Datei den selben Namen tragen muss wie die darin enthaltene (ausführbare - ist aber im Moment nicht wichtig) Klasse.

Daher muss nun eine Datei „HelloWorld.java“ erstellt werden (in der IDE über die dort zur Verfügung stehenden Schaltflächen, beim Editor einfach eine Datei erstellen und entsprechend benennen) und unsere Klasse als Inhalt bekommen:

public class HelloWorld
{
}

Der folgende Code definiert eine Klasse „HelloWorld“, die „öffentlich“ (public) zugänglich ist. Die eckigen Klammern definieren den Bereich um das, was zu der Klasse gehört.Nun ist aber bisher nur unsere Klasse vorhanden, es steht noch nichts „drinnen“. Wir haben also noch nicht definiert, was eigentlich passieren soll. Zunächst muss ein „Ort“ definiert werden, an dem das Programm beginnt. Diese „Hauptfunktion“ (was genau Funktionen sind und wie viel Spaß man damit hat wird noch ausführlich behandelt) wird üblicherweise „main“ (engl. „Haupt-“) genannt. Auch sie muss „öffentlich“ , also public sein:

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

Die Klammern definieren wieder den Bereich, der zu „main“ gehört. Dieser Bereich liegt innerhalb der Klasse „HelloWorld“, gehört also logischerweise auch zu dieser dazu. Wir finden aber nun neue Begriffe, die noch nicht bekannt sind. Fangen wir bei static an. Welche genauen Folgen dieses Schlüsselwort in unterschiedlichen Situationen hat interessiert uns nun erst einmal nicht, sondern nur die Bedeutung in dieser speziellen Konstellation. Wenn das Javaprogramm ausgeführt wird, dann existiert noch kein Objekt „HelloWorld“. Trotzdem muss natürlich „etwas“ vorhanden sein, mit dem das Programm beginnen kann. Dieses „etwas“ ist - wie schon bekannt - unsere „main“ Funktion. Damit diese auch unabhängig von einem Objekt existiert definieren wir sie als statisch/„feststehend“, also static.

Eine weitere Neuerung in unserem Code ist der Begriff String. Dabei handelt es sich um einen Datentyp - was genau das ist wird auch später vermittelt - der eine Zeichenkette speichern kann. Die eckigen Klammern [] hinter diesem Schlüsselwort bedeuten kurz gesagt, dass mehrere Objekte vom Typ String erwartet werden. Diese Objekte werden zusammenfassend „args“ (Argumente/Parameter) getauft. Das Stichwort „Parameter“ verrät auch schon den Nutzen der ganzen Angelegenheit (String [] args). Mit diesen Parametern (Objekte vom Typ String) kann man das Verhalten der Funktion - und da es hier die „main“ Funktion ist des ganzen Programms - beeinflussen. Zumindest, wenn der Programmierer (du!) das vorgesehen hat. Wir möchten erstmal nicht durch den Benutzer unseres Programms beeinflusst werden, also werden wir die Parameter nicht weiter verwenden/bearbeiten. Trotzdem kann der Benutzer dem Programm Parameter übergeben - es ergibt sich nur kein Nutzen für ihn daraus.

Ansosnten ist unser Programm damit schon einmal „vorhanden“. Der vorliegende Code ist das so ziemlich einfachste Programm, dass es gibt. Das Programm tut einfach nichts, außer sich zu beenden (weil es ja nichts zu tun hat).

Das soll natürlich nicht so bleiben! Unser Programm soll uns zumindest begrüßen. Um das zu erreichen, müssen wir das Programm etwas ausgeben lassen. Diese Ausgabe ist auf jeder Plattform anders geregelt, weshalb wir uns nicht selbst direkt darum kümmern wollen, sondern die Arbeit lieber die Standardbibliothek von Java erledigen lassen. Dazu benutzen wir eine Funktion dieser Bibliothek, die die Aufgabe der Ausgabe für uns übernimmt. Wir müssen der Funktion nur mitteilen (über Parameter) was sie ausgeben soll!

public class HelloWorld
{
  public static void main (String [] args)
  {
    System.out.println("Hello World!");
  }
}

Die Funktion, die wir benutzen heißt println (print line → schreibe Zeile). Diese Funktion ist natürlich nicht verwahrlost irgendwo im Nirgendwo, sondern ist -dem Prinzip der Objektorientierung von Java folgend - in einer Klasse System untergebracht. Innerhalb dieser Klasse gibt es noch eine weiter Unterteilung „out“, auf die aber nicht genau eingegangen werden soll. Wichtig ist für uns erstmal nur, dass wir so Text ausgeben können.

Die neue Zeile an Code ist auch in anderer Hinsicht etwas Neues. Es ist der erste Befehl den wir benutzen. Wir „rufen“ eine andere Funktion auf und „befehlen“ ihr somit, etwas für uns zu tun. Damit Java weiß, wann der Befehl zu ende ist, müssen wir das Ende markieren. Das wird mit einem Semikolon/Strichpunkt ; gemacht. Java kennt - so wie viele andere Programmiersprachen - nämlich keine Zeilenumbrüche, weshalb es nicht reicht, einfach nach jedem Befehl eine neue Zeile anzufangen.

Der Funktion println übergeben wir das Argument/den Parameter „Hello World!“. Die () Klammern definieren den Bereich, in dem Parameter zu „finden“ sind. „Hello World!“ ist eine Aneinanderreihung von Zeichen, also eine Zeichenkette. Um dies für Java deutlich zu machen, wird es in Anführungszeichen gesetzt.