Befehlsreferenz Java

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Die druckbare Version wird nicht mehr unterstützt und kann Darstellungsfehler aufweisen. Bitte aktualisiere deine Browser-Lesezeichen und verwende stattdessen die Standard-Druckfunktion des Browsers.

Diese Übersicht fasst die (für die Schule) wichtigsten Java-Befehle und -Konstrukte auf einer Seite zusammen.

Eine vollständige Liste aller Java-Befehle kann in der Java API Dokumentation nachgeschlagen werden.

Gezieltere Informationen gibt es hier im Wiki, zum Beispiel im Lernpfad:Objektorientierte Programmierung mit Java oder Lernpfad:Würfelspiel in Java.

Das Inhaltsverzeichnis und die Suchfunktion in eurem Browser helfen euch beim Auffinden von Informationen. Drückt dazu Strg+F und gebt einen Suchbegriff ein (z.B. „Zufall“).

Die Syntax der Sprachelemente ist zum Teil als Syntaxdiagramm dargestellt.

Kommentare

Zeilen, die mit // beginnen werden vom Programm ignoriert. Sie dienen dazu, den Quelltext mit Kommentaren zu versehen, die das Verständnis erleichtern.

// Ich werde nicht ausgeführt
// System.out.println("Ich auch nicht");
System.out.println("Ich aber"); // Ab hier wird wieder ignoriert

Um größere Teile des Quelltextes zu ignorieren können die Symbole /* und */ benutzt werden.

/*
Ich werde nicht ausgeführt


System.out.println("Ich auch nicht");
*/
System.out.println("Ich aber");

JavaDoc Kommentare

JavaDoc ist eine besondere Form von Kommentaren, die dazu genutzt werden, Klassenelemente zu dokumentieren. Da sie eine vorgegebene Struktur haben, können sie automatisch verarbeitet werden und zum Beispiel als Website ausgegeben werden. Die [# Java-API Dokumentation] ist zum Beispiel so entstanden.

Ein JavaDoc Kommentar hat diese Form:

/**
 * Kurze Beschreibung der Methode
 *
 * Ggf. ausführliche Beschreibung. 
 * @param a Erster Summand
 * @param b Zweiter Summand
 * @return Summe der Parameter
 */
public int summe( int a, int b ) {
    return a+b;
}

Weiter Beispiele und Beschreibungen finden sich im Wikibook Java Standard.

BlueJ kann die JavaDoc-Dokumentation direkt anzeigen, indem man oben rechts im Editor con "Quelltext" auf "Dokumentation" wechselt.

Datentypen

Name Beschreibung Datentyp Beispielwerte
Integer Ganze Zahlen int 1, 4, 19, 1295
Double Gleitkommazahlen double 4.5, 6.1, 7.5
Boolean Wahrheitswerte boolean true, false
Character Einzelne Unicode-Zeichen char 'x', 'a'

Eine vollständige Liste ist im Lernpfad:Objektorientierte Programmierung mit Java zu finden.

Strings (Texte)

Strings bestehen aus einer Kette von chars, sie gehören aber nicht zu den primitiven Datentypen, sondern sind Objekte. Daher gelten für Strings einige Besonderheiten:

  1. Strings besitzen Methoden, um mit den enthaltenen Zeichnketten zu arbeiten:
    1. int String.length() - Ermittelt die Länge der Zeichenkette.
    2. String String.toUpperCase() - Erstellt eine Kopie der Zeichenkette, die nur aus Großbuchstaben besteht.
    3. Und noch viele mehr ...
  2. Strings müssen mit der equals-Methode verglichen werden, nicht mit ==:
    String hallo = "Hallo, Welt!";
    if( hallo.equals("Hallo und Tschüß!") ) {
    	System.out.println("Die Strings passen nicht!");
    }
    

Typumwandlungen

Datentypen können ineinander umgewandelt werden (Typecasting). Dazu wird der Zieltyp in runden Klammern dem Wert voran gestellt.

int zahl = (int) 4.563;
boolean wahrheit = (boolean) zahl;

Je nachdem, welche Typen vorkommen, wird ein anderes Vorgeben beim Umwandeln benutzt. Zum Beispiel werden beim double Wert 4.563 im Beispiel oben einfach die Nachkommastellen angeschnitten, um daraus den int Wert 4 zu machen. (Es wird also nicht gerundet!)

Operatoren

Rechenoperatoren

Operator Beschreibung Beispiel
+
-
*
/
Addition, Subtraktion, Multiplikation, Division
5 + 3 // = 8
5 - 3 // = 2
5 * 3 // = 15
5 / 2 // = 2.5
+=
-=
*=
/=
Kurzformen für die Veränderung einer Zahlvariablen.
i += 3 // i = i + 1
i -= 3 // i = i - 1
i *= 3 // i = i * 3
i /= 2 // i = i / 2
% Modulo-Operator: Berechnet den Rest eine ganzzahligen Division.
5 % 3 // = 2
1 % 2 // = 1
8 % 4 // = 0

Vergleichsoperatoren

Operator Beschreibung Beispiel
== Zwei primitive Datentypen auf Gleichheit prüfen. 5 == i
!= Zwei primitive Datentypen auf Ungleichheit prüfen. 5 != i
> "größer als" 5 > i
< "kleiner als" 5 < i
>= "größer oder gleich" 5 >= i
<= "kleiner oder gleich" 5 <= i
equals(Object o) String-Vergleiche "Hallo".equals("Welt")

Logische Verknüpfungen

Operator Beschreibung Beispiel
&& "UND": Ist wahr, wenn der linke und der rechte Ausdruck wahr sind. true && (a == b)
|| "ODER": Ist wahr, wenn der linke oder der rechte Ausdruck wahr sind (oder auch beide). true || (a == b)
! "NICHT": Negiert den Ausdruck. !(a == b)

Allgemeine Programmkonstrukte

Variablen

Lokale Hilfsvariablen

Objektvariablen

Parametervariablen

Rückgabevariablen

Methoden

Programmkonstrukte zur Ablaufsteuerung

Bedingte Anweisungen

Beschreibung Syntax Beispiel
if-Anweisung

(Bedingte Anweisung)

Java-Syntax-If.png
if( i > 5 ) {
	System.out.println('i ist grösser als 5');
}
if-else-Anweisung

(Alternative)

Java-Syntax-Ifelse.png
if( i > 5 ) {
	System.out.println('i ist grösser als 5');
} else {
	System.out.println('i ist kleiner oder gleich 5');
}
if-elseif-Anweisung Java-Syntax-Ifelseif.png
if( i > 5 ) {
	System.out.println('i ist grösser als 5');
} elseif( i < 3 ) {
	System.out.println('i ist kleiner als 3');
} else {
	System.out.println('i ist 3, 4 oder 5');
}
switch-Anweisung

Kurzschreibweise für viele if-elseif-Anweisungen hintereinander. Die switch-Anweisung funktioniert nur mit primitiven Datentypen. (Also z.B. mit char, aber nicht mit String.)

Datei:Java-Syntax-Switch.png
int i;
switch( i ) {
	case 1:
	    System.out.println("1 wurde erkannt!");
    	break;
	case 2:
	    System.out.println("2 wurde erkannt!");
    	break;
    default:
	    System.out.println("Keine 1 oder 2!");
    	break;
}

Schleifen

Beschreibung Syntax Beispiel
while-Schleife

(Kopfgesteuerte Schleife, Bedingte Schleife)

Datei:Java-Syntax-While.png
int i = 0;
while( i < 10 ) {
	System.out.println("i ist jetzt " + i);
	i += 1;
}
do-while-Schleife

(Fußgesteuerte Schleife)

Datei:Java-Syntax-Dowhile.png
boolean isRunning = true;
int i = 0;
do {
	System.out.println("i ist jetzt " + i);
    isRunning = 1 < 10;
} while( isRunning );
for-Schleife

(Zählschleife)

Datei:Java-Syntax-For.png
for( int i = 0; i < 100; i++ ) {
	System.out.println("i ist jetzt " + i);
}

Fehlerbehandlung

Beschreibung Syntax Beispiel
try-catch-Anweisung Datei:Java-Syntax-Trycatch.png
try {
	// Anweisungen die ggf. einen Fehler (Exception) produzieren
	// Sobald ein Fehler produziert wurde, wird in den catch-Teil gesprungen
} catch( Exception e1 ) {
	System.err.println("Ein Fehler ist aufgetreten!");
}
try-catch-finally-Anweisung Datei:Java-Syntax-Trycatch.png
try {
	// Anweisungen die ggf. einen Fehler (Exception) produzieren
	// Sobald ein Fehler produziert wurde, wird in den catch-Teil gesprungen
} catch( Exception e1 ) {
	System.err.println("Ein Fehler ist aufgetreten!");
} finally {
	System.err.println("Diese Anweisung wird auf jeden Fall ausgeführt.");
}

Statt Exception können auch konkrete Fehler abgefangen werden. Dien Liste der Standard-Exceptions findet sich unter java.lang.Exception. (Es können aber auch eigene Exceptions erstellt werden.) Es ist auch erlaubt mehrere catch-Blöcke anzugeben:

try {
	// Anweisungen die ggf. mehrere Fehler (Exceptions) produzieren
	// z.B. InputMismatchException oder NoSuchElementException
    // in Scanner#nextInt().
} catch( InputMismatchException e1 ) {
	System.err.println("Eingabe kann nicht in Zahl umgewandelt werden!");
} catch( NoSuchElementException e2 ) {
	System.err.println("Keine weitere Eingabe vorhanden!");
}

Klassen aus der Java-API

Ausgaben

Beschreibung Beispiel
Ausgabe von Text in der Konsole
System.out.print("Hallo, Welt!");
Ausgabe von Text mit Zeilenumbruch in der Konsole
System.out.println("Hallo, Welt!");
Ausgabe von Text mit Formatierungen in der Konsole
System.out.printf("%s, %s!\n", "Hallo", "Welt");
Ausgabe von Text in der Fehlerkonsole
System.err.println("Hallo, Welt!");

java.lang.Math

Sammlung von mathematischen Hilfsfunktionen (Runden, Wurzel, Logarithmus, ...). Ein vollständige Übersicht findet ihr in der Java API Dokumentation.

Beschreibung Signatur Beispiel
Rundet die Zahl zahl. long Math.round(double zahl)
long gerundet = Math.round(14.235); // 14
Zufallszahlen zwischen 0 und 1 erzeugen. (1 wird nie erzeugt.) long Math.random()
double zufall = Math.random();
Quadratwurzel berechnen. double Math.sqrt(double radikant)
double wurzel = Math.sqrt(2); // 1.41

java.util.Random

Hilfsklasse, um Zufallswerte verschiedener Typen zu erzeugen.

Icon Info.png
Die Klasse muss zuerst importiert werden. Schreibe in Zeile 1:

import java.util.Random;

Beschreibung Signatur Beispiel
Zufällige ganze Zahl von 0 bis max-1 erzeugen. int nextInt(int max)
Random rand = new Random();
// Zufallszahl von 0 bis 99
int zufall = rand.nextInt(100);
// Zufallszahl von 50 bis 69
int zufall2 = rand.nextInt(20)+50;
Zufälligen Wahrheitswert erzeugen. boolean nextBoolean()
Random rand = new Random();
boolean zufall = rand.nextBoolean();
Zufällige Zahl zwischen 0 und 1 erzeugen, wobei 1 niemals erzeugt wird (exklusive). double nextDouble()
Random rand = new Random();
double zufall = rand.nextDouble();

java.util.Scanner

Die Klasse Scanner ist eine Hifsklasse, die das Einlesen von Benutzereingaben in der Konsole erleichtert. Zunächst muss ein Objekt der Klasse mit dem Parameter System.in erstellt werden: Scanner konsole = new Scanner(System.in);.

Icon Info.png
Die Klasse muss zuerst importiert werden. Schreibe in Zeile 1:

import java.util.Scanner;

Beschreibung Signatur Beispiel
Einlesen einer ganzen Zahl. Ist die Eingabe keine Zahl, wird eine java.util.InputMismatchException produziert. (Siehe Fehlerbehandlung zum Umgang mit Exceptions.) int nextInt()
Scanner konsole = new Scanner(System.in);
int eingabe = konsole.nextInt();
Einlesen einer Textzeile. Die Eingabe muss mit ENTER abgeschlossen werden. String nextLine()
Scanner konsole = new Scanner(System.in);
String eingabe = konsole.nextLine();

Datentyp-Klassen

java.lang.String

Beschreibung Signatur Beispiel
Anzahl Zeichen in der Zeichenkette. int length()
String text = "Hallo, Welt!";
int zeichen = text.length(); // 12
Gibt das Zeichen an Index i zurück. Das erste Zeichen hat den Index 0. char charAt( int i )
char firstChar = "Hallo, Welt!".charAt(0); // 'H'
char fourthChar = "Hallo, Welt!".charAt(3); // 'l'
Wandelt alle Zeichen in Großbuchstaben um. String toUpperCase()
String text = "Hallo, Welt!";
String upper = text.toUpperCase(); // HALLO, WELT!
Wandelt alle Zeichen in Kleinbuchstaben um. String toLowerCase()
String text = "Hallo, Welt!";
String upper = text.toLowerCase(); // hallo, welt!
Findet die Position im String, an der der Text suchen zum ersten Mal vorkommt. Kommt der Text gar nicht vor, dann wird -1 zurück gegeben. Das erste Zeichen hat den Index 0. int indexOf( String suchen )
String text = "Hallo, Welt!";
int position = text.indexOf(","); // 5
text.indexOf("Foo"); // -1
Ersetzt das erste vorkommen von suche mit ersatz. String replaceFirst(String suche, String ersatz)
String text = "Hallo, Welt!";
text.replaceFirst("Welt", "Wald"); // Hallo, Wald!

java.lang.Integer

Beschreibung Signatur Beispiel
Konvertiert einen String in eine Zahl. int Integer.parseInt(String text)
String text = "5";
int zahl = Integer.parseInt(text);
Konvertiert eine Zahl in einen String. String Integer.toString(int zahl)
int zahl = 5;
String alsText = Integer.toString(zahl);

Zu allen primitiven Datentypen gibt es eigene Datentyp-Klassen (sog. Wrapper-Klassen):