Hallo Welt

/**
 * Dieser drei Zeilen sind ein Kommentar.
 * Der Quellcode muss sich in einer Datei mit dem Namen HalloWelt.java befinden.
 * Beim Ausführen wird "Hallo Welt" ausgegeben. 
 */
public class HalloWelt {
    public static void main(String[] argumente) {
        System.out.println("Hallo Welt");
    }
}

Dateinamen

Alle Java Klassen und Schnittstellen werden in Dateien mit der Endung .java definiert. Der Name der .java Datei muss mit der darin definierten Klasse bzw. Schnittstelle übereinstimmen.

Allgemein

  • Code ist nur innerhalb der Klassendefinition zulässig.
  • Jede Anweisung wird mit einem Semikolon ‚;‘ abgeschlossen.
  • Code-Blöcke beginnen mit { und enden mit }

Java Namenskonventionen

Variablen, Methoden und Objekte:

  • Starten mit einem Kleinbuchstaben.
  • Jedes neue Wort beginnt mit einem Großbuchstaben, der Rest wird in Kleinbuchstaben geschrieben.
    Beispiel:
    public int eineGanzzahligeVariable = 10;
    public float eineGleitpunktZahl = 1.5f;
    public void eineLeereMethode() { }
    

Klassen:

  • Starten mit einem Großbuchstaben und fahren mit Kleinbuchstaben fort.
  • Jedes neue Wort beginnt mit einem Großbuchstaben, der Rest wird in Kleinbuchstaben geschrieben.
    Beispiel:
    public class MeineKlasse { ... } 
    

Sichtbarkeit von Variablen und Methoden in Java

public, protected und private definieren die Zugriffsrechte von Methoden und Variablen:

Klasse Paket Abgeleitete Klasse Außerhalb der Klasse
public Ja Ja Ja Ja
protected Ja Ja Ja Nein
kein Angabe Ja Ja Nein Nein
private Ja Nein Nein Nein

Java Klassen

Das folgende Beispiel zeigt eine simple Klasse. Sie muss in der Datei BeispielEinerKlasse.java definiert sein:

public class BeispielEinerKlasse {
    public int klassenglobaleVariable;

    public BeispielEinerKlasse() {
        int methodenlokaleVariable;
        System.out.println("Konstruktor");
    }

    public int eineMethode(int parameter) {
        System.out.println("Wert des Parameters: "+parameter);
        return 0;
    }

    public void eineMethode() {
        System.out.println("Methode ohne Parameter");
    }
}
  • public BeispielEinerKlasse() (Zeile 4) stellt den Konstruktor der Klasse dar. Der Konstruktor wird zum Initialisieren der Klasse verwendet. Er wird aufgerufen, sobald eine Instanz der Klasse mit dem new Operator, wie in folgendem Beispiel, angelegt wird:
    BeispielEinerKlasse instanz = new BeispielEinerKlasse();
  • public void eineMethode(int parameter) (Zeile 9)
    definiert eine Methode mit dem Namen eineMethode(), mit den Zugriffsrechten public, ohne return-Wert (void) sowie mit einem Parameter vom Typ int.
  • Java erlaubt das Überladen von Methoden wie in Zeile 10 und 14 ersichtlich. Die überladenen Methoden müssen sich in den übergebenen Parametern unterscheiden.
  • Mittels return wird in Zeile 11 der Wert 0 zurückgeliefert.

Die Klasse wird folgendermaßen verwendet:

BeispielEinerKlasse bek = new BeispielEinerKlasse();
bek.eineMethode(123);

Variablendeklaration

Sichtbarkeit Typ Name;
Variablen können überall im Code deklariert werden, jedoch erst nach deren Deklaration verwendet werden. Beispiel:

public int integerVariable;
public float gleitpunktWert;

Java Operatoren

  • Zuweisungsoperatoren:
    =,  +=,  ‐=,  *=,  /=,  %=, <<=, >>=, >>>=
  • Numerische Operatoren:
    +,  ‐,  *,  /,  %,  ++,  ‐‐
  • Vergleichsoperatoren:
    ==,  !=,  <,  >,  <=,  >=
  • Boolesche Operatoren:
    &&,  ||,  !
  • Bitoperatoren:
    &,  |,  ^,  ~,  <<, >>, >>>

Operatorprioritäten in Java

Operatoren in Java, gelistet nach deren Priorität (höchste Priorität oben):

Klammern                   ()
Postfix                    expr++ expr--
Unär                       ++expr --expr +expr -expr ~ !
Multiplikativ              * / %
Additive                   + -
Shift                      << >> >>>
Vergleich                  < > <= >= instanceof
Gleichheit                 == !=
Bitweise UND               &
Bitweise exclusive ODER    ^
Bitweise inclusive ODER    |
Logisch UND                &&
Logisch ODER               ||
if/else                    ? :
Zuweisung                  = += -= *= /= %= &= ^= |= <<= >>= >>>=

Entscheidungen

if (a == 0) {

} else if (a == 1) {

} else {

}



// das Gleiche als switch/case
switch(a) {
    case 0:
    break;

    case 1:
    break;

    default:
    break;
}
  • Ohne break wird in den nächsten Fall übergegangen. Das Verhalten kann so gewollt sein.
  • Ohne default kann es passieren, dass nichts ausgeführt wird.

Schleifen

for (int i=0; i<10; i++) {
}
 
 
int i;
while (i < 10) {
    int ++;
}
 
 
do {
    if (i == 5) {
        continue;
    } else if (i == 6) {
        break;
    }
} while (i < 10);
  • break – dient zum vorzeitigen Beenden von for, while und do-while Schleifen sowie zum Verlassen von switch-case.
  • continue – führt in for, while und do-while Schleifen zum nächsten Durchlauf der Schleife.

Konstanten

Konstanten werden über den Zusatz static final definiert. Werden in Java nur in Großbuchstaben geschrieben, wobei Worte mit einem ‚_‘ getrennt werden.

public static final int KONSTANTER_WERT = 1;

Kommentare

Java bietet Zeilen und Blockkommentare. Zeilenkommentare beginnen mit // wobei alles hinter // wird vom Compiler ignoriert.
Blockkommentare beginnen mit /* und enden mit */
Alles zwischen /* und */ wird vom Compiler ignoriert.

String

Die Java Klasse String wird zum Speichern einer Zeichenkette verwendet. Beispiel:

String gruss = "Hallo Welt";

Strings können über den + Operator zusammengehängt werden:

String gruss = "Hallo";
gruss += " Welt";       // ändert gruss zu "Hallo Welt"

Strings werden mit der Methode equals() wie im folgendem Beispiel verglichen:

if (gruss.equals("Hallo Welt")) {
    // gruss enthält den String "Hallo Welt");
}

Array

Ein Feld von Werten, die im Speicher hintereinander liegen. Arrays werden wie folgt deklariert und initialisiert:

int[] integerArray = { 1, 2, 3 };
int[] integerArray = new int[] { 1, 2, 3 };     // initialisiertes Array
int[] integerArray = new int[3];                // uninitialisiertes Array, alle Werte 0

int integerArray[];         // deklariert ein Array
integerArray = new int[3];  // erzeugt ein Array
  • Arrays besitzen eine .length Variable, die die Länge des Arrays enthält.
  • Der Index startet bei 0
  • Die Länge eines Arrays kann nicht geändert werden.
  • Zugriff auf ein Element mit dem Index >= array.length verursacht eine ArrayIndexOutOfBoundsException

Exceptions

Exceptions werden zur strukturierten Fehlerbehandlung verwendet. Methoden können mit dem Schlüsselwort throw Exceptions verursachen. Zum Feststellen, ob eine Exception aufgetreten ist, werden Methoden, die Exceptions verursachen können, innerhalb eines try/catch/finally block aufgerufen. Beispiel:

int value;
try {
    value = Integer.parseInt("ungültig - keine Zahl");     
} catch (NumberFormatExcepMon e1) {
    e.printStackTrace();
    value = 0;
    return;
} finally {
    
}
  • Integer.parseInt() verursacht beim Parsen einer Zeichenkette, die keine Ganzzahl enthält, eine NumberFormatException.
  • Im obigen Beispiel wird der Stacktrace, der zum Aufruf geführt hat, an die Konsole geschrieben und die Variable value auf 0 gesetzt.
  • Der finally block wird immer ausgeführt, selbst wenn der catch block über return verlassen wird.

this

Innerhalb einer Java Klasse wird this für den Zugriff auf das eigene Objekt verwendet.