Befehlsreferenz Java: Unterschied zwischen den Versionen
Jneug (Diskussion | Beiträge) |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| (50 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
{{Kurzlink|befehle-java}} | |||
Diese Übersicht fasst die (für die Schule) wichtigsten Java-Befehle und -Konstrukte auf einer Seite zusammen. | Diese Übersicht fasst die (für die Schule) wichtigsten Java-Befehle und -Konstrukte auf einer Seite zusammen. | ||
| Zeile 6: | Zeile 7: | ||
Das Inhaltsverzeichnis und die Suchfunktion in eurem Browser helfen euch beim Auffinden von Informationen. Drückt dazu {{Button|Strg}}+{{Button|F}} und gebt einen Suchbegriff ein (z.B. „Zufall“). | Das Inhaltsverzeichnis und die Suchfunktion in eurem Browser helfen euch beim Auffinden von Informationen. Drückt dazu {{Button|Strg}}+{{Button|F}} und gebt einen Suchbegriff ein (z.B. „Zufall“). | ||
Die Syntax der Sprachelemente ist zum Teil als [[Syntaxdiagramm]] dargestellt. | |||
== Kommentare == | |||
Zeilen, die mit <code>//</code> beginnen werden vom Programm ignoriert. Sie dienen dazu, den Quelltext mit ''Kommentaren'' zu versehen, die das Verständnis erleichtern. | |||
<syntaxhighlight lang="java"> | |||
// Ich werde nicht ausgeführt | |||
// System.out.println("Ich auch nicht"); | |||
System.out.println("Ich aber"); // Ab hier wird wieder ignoriert | |||
</syntaxhighlight> | |||
Um größere Teile des Quelltextes zu ignorieren können die Symbole <code>/*</code> und <code>*/</code> benutzt werden. | |||
<syntaxhighlight lang="java"> | |||
/* | |||
Ich werde nicht ausgeführt | |||
System.out.println("Ich auch nicht"); | |||
*/ | |||
System.out.println("Ich aber"); | |||
</syntaxhighlight> | |||
=== JavaDoc Kommentare === | |||
[[wikipedia:JavaDoc|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: | |||
<syntaxhighlight lang="java"> | |||
/** | |||
* 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; | |||
} | |||
</syntaxhighlight> | |||
Weiter Beispiele und Beschreibungen finden sich im [https://de.wikibooks.org/wiki/Java_Standard:_Javadoc Wikibook Java Standard]. | |||
{{BlueJ}} kann die JavaDoc-Dokumentation direkt anzeigen, indem man oben rechts im Editor con "Quelltext" auf "Dokumentation" wechselt. | |||
== Datentypen == | == Datentypen == | ||
| Zeile 40: | Zeile 86: | ||
Strings bestehen aus einer Kette von <code>char</code>s, sie gehören aber nicht zu den ''primitiven Datentypen'', sondern sind ''Objekte''. Daher gelten für Strings einige Besonderheiten: | Strings bestehen aus einer Kette von <code>char</code>s, sie gehören aber nicht zu den ''primitiven Datentypen'', sondern sind ''Objekte''. Daher gelten für Strings einige Besonderheiten: | ||
# [[java8:java/lang/String|Strings besitzen Methoden]], um mit den enthaltenen Zeichnketten zu arbeiten: | |||
## <code>int String.length()</code> - Ermittelt die Länge der Zeichenkette. | |||
## <code>String String.toUpperCase()</code> - Erstellt eine Kopie der Zeichenkette, die nur aus Großbuchstaben besteht. | |||
## Und noch viele mehr ... | |||
# Strings müssen mit der <code>equals</code>-Methode verglichen werden, nicht mit <code>==</code>:<syntaxhighlight lang="java">String hallo = "Hallo, Welt!"; | |||
if( hallo.equals("Hallo und Tschüß!") ) { | |||
System.out.println("Die Strings passen nicht!"); | |||
}</syntaxhighlight> | |||
=== Typumwandlungen === | === Typumwandlungen === | ||
Datentypen können ineinander umgewandelt werden (Typecasting). Dazu wird der Zieltyp in runden Klammern dem Wert voran gestellt. | |||
<syntaxhighlight lang="java"> | |||
int zahl = (int) 4.563; | |||
boolean wahrheit = (boolean) zahl; | |||
</syntaxhighlight> | |||
Je nachdem, welche Typen vorkommen, wird ein anderes Vorgeben beim Umwandeln benutzt. Zum Beispiel werden beim <code>double</code> Wert <code>4.563</code> im Beispiel oben einfach die Nachkommastellen angeschnitten, um daraus den <code>int</code> Wert <code>4</code> zu machen. (Es wird also nicht gerundet!) | |||
== Operatoren == | == Operatoren == | ||
| Zeile 52: | Zeile 114: | ||
! Beispiel | ! Beispiel | ||
|- | |- | ||
| < | | <pre>+ | ||
- | |||
* | |||
/</pre> | |||
| Addition, Subtraktion, Multiplikation, Division | | Addition, Subtraktion, Multiplikation, Division | ||
| < | | <pre>5 + 3 // = 8 | ||
5 - 3 // = 2 | |||
5 * 3 // = 15 | |||
5 / 2 // = 2.5</pre> | |||
|- | |- | ||
| < | | <pre>+= | ||
-= | |||
*= | |||
/=</pre> | |||
| Kurzformen für die Veränderung einer Zahlvariablen. | | Kurzformen für die Veränderung einer Zahlvariablen. | ||
| < | | <pre>i += 3 // i = i + 1 | ||
i -= 3 // i = i - 1 | |||
i *= 3 // i = i * 3 | |||
i /= 2 // i = i / 2</pre> | |||
|- | |- | ||
| <code>%</code> | | <code>%</code> | ||
| [[wikipedia:Division_mit_Rest#Modulo|Modulo]]-Operator: Berechnet den Rest eine ganzzahligen Division. | | [[wikipedia:Division_mit_Rest#Modulo|Modulo]]-Operator: Berechnet den Rest eine ganzzahligen Division. | ||
| < | | <pre>5 % 3 // = 2 | ||
1 % 2 // = 1 | |||
8 % 4 // = 0</pre> | |||
|} | |} | ||
| Zeile 96: | Zeile 172: | ||
| <code>5 <= i</code> | | <code>5 <= i</code> | ||
|- | |- | ||
| <code>equals(Object o)</code> | | <code>{{Java API|java.lang.String|equals-java.lang.Object-|equals(Object o)}}</code> | ||
| String-Vergleiche | | String-Vergleiche | ||
| <code>"Hallo".equals("Welt")</code> | | <code>"Hallo".equals("Welt")</code> | ||
| Zeile 124: | Zeile 200: | ||
=== Variablen === | === Variablen === | ||
==== Lokale Hilfsvariablen ==== | |||
==== Objektvariablen ==== | |||
==== Parametervariablen ==== | |||
==== Rückgabevariablen ==== | |||
=== Methoden === | === Methoden === | ||
| Zeile 138: | Zeile 218: | ||
(Bedingte Anweisung) | (Bedingte Anweisung) | ||
| [[Datei:Java-Syntax-If. | | [[Datei:Java-Syntax-If.png|400px]] | ||
| <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> | ||
if( i > 5 ) { | if( i > 5 ) { | ||
| Zeile 148: | Zeile 228: | ||
(Alternative) | (Alternative) | ||
| [[Datei:Java-Syntax-Ifelse. | | [[Datei:Java-Syntax-Ifelse.png|400px]] | ||
| <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> | ||
if( i > 5 ) { | if( i > 5 ) { | ||
| Zeile 158: | Zeile 238: | ||
|- | |- | ||
| '''if-elseif-Anweisung''' | | '''if-elseif-Anweisung''' | ||
| [[Datei:Java-Syntax-Ifelseif. | | [[Datei:Java-Syntax-Ifelseif.png|400px]] | ||
| <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> | ||
if( i > 5 ) { | if( i > 5 ) { | ||
| Zeile 166: | Zeile 246: | ||
} else { | } else { | ||
System.out.println('i ist 3, 4 oder 5'); | System.out.println('i ist 3, 4 oder 5'); | ||
} | |||
</syntaxhighlight> | |||
|- | |||
| '''switch-Anweisung''' | |||
Kurzschreibweise für viele ''if-elseif-Anweisungen'' hintereinander. Die ''switch-Anweisung'' funktioniert nur mit primitiven Datentypen. (Also z.B. mit <code>char</code>, aber nicht mit <code>String</code>.) | |||
| [[Datei:Java-Syntax-Switch.png|400px]] | |||
| <syntaxhighlight lang="java"> | |||
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; | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Zeile 179: | Zeile 278: | ||
(Kopfgesteuerte Schleife, Bedingte Schleife) | (Kopfgesteuerte Schleife, Bedingte Schleife) | ||
| [[Datei:Java-Syntax-While. | | [[Datei:Java-Syntax-While.png]] | ||
| <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> | ||
int i = 0; | int i = 0; | ||
| Zeile 191: | Zeile 290: | ||
(Fußgesteuerte Schleife) | (Fußgesteuerte Schleife) | ||
| [[Datei:Java-Syntax-Dowhile. | | [[Datei:Java-Syntax-Dowhile.png]] | ||
| <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> | ||
boolean | boolean isRunning = true; | ||
int i = 0; | |||
do { | do { | ||
System.out.println("i ist jetzt " + i); | |||
isRunning = 1 < 10; | |||
} while( isRunning ); | } while( isRunning ); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Zeile 202: | Zeile 303: | ||
(Zählschleife) | (Zählschleife) | ||
| [[Datei:Java-Syntax-For. | | [[Datei:Java-Syntax-For.png]] | ||
| <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> | ||
for( int i = 0; i < 100; i++ ) { | for( int i = 0; i < 100; i++ ) { | ||
| Zeile 217: | Zeile 318: | ||
|- | |- | ||
| '''try-catch-Anweisung''' | | '''try-catch-Anweisung''' | ||
| [[Datei:Java-Syntax-Trycatch. | | [[Datei:Java-Syntax-Trycatch.png]] | ||
| <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> | ||
try { | try { | ||
// Anweisungen die ggf. einen Fehler (Exception) produzieren | // Anweisungen die ggf. einen Fehler (Exception) produzieren | ||
// Sobald ein Fehler produziert wurde, wird in den catch-Teil gesprungen | // Sobald ein Fehler produziert wurde, wird in den catch-Teil gesprungen | ||
} catch( Exception e1 ) { | } catch( Exception e1 ) { | ||
System.err.println("Ein Fehler ist aufgetreten!"); | System.err.println("Ein Fehler ist aufgetreten!"); | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
| '''try-catch-finally-Anweisung''' | | '''try-catch-finally-Anweisung''' | ||
| [[Datei:Java-Syntax-Trycatch. | | [[Datei:Java-Syntax-Trycatch.png]] | ||
| <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> | ||
try { | try { | ||
// Anweisungen die ggf. einen Fehler (Exception) produzieren | // Anweisungen die ggf. einen Fehler (Exception) produzieren | ||
// Sobald ein Fehler produziert wurde, wird in den catch-Teil gesprungen | // Sobald ein Fehler produziert wurde, wird in den catch-Teil gesprungen | ||
} catch( Exception e1 ) { | } catch( Exception e1 ) { | ||
System.err.println("Ein Fehler ist aufgetreten!"); | System.err.println("Ein Fehler ist aufgetreten!"); | ||
} finally { | } finally { | ||
System.err.println("Diese Anweisung wird auf jeden Fall ausgeführt."); | System.err.println("Diese Anweisung wird auf jeden Fall ausgeführt."); | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
Statt <code>Exception</code> können auch konkrete Fehler abgefangen werden. Dien Liste der Standard-Exceptions findet sich unter {{Java API|java.lang.Exception}}. (Es können aber auch eigene Exceptions erstellt werden.) Es ist auch erlaubt mehrere <code>catch</code>-Blöcke anzugeben: | |||
<syntaxhighlight lang="java"> | |||
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!"); | |||
} | |||
</syntaxhighlight> | |||
== Klassen aus der Java-API == | == Klassen aus der Java-API == | ||
| Zeile 270: | Zeile 384: | ||
|} | |} | ||
=== java.lang.Math === | === {{Java API|java.lang.Math}} === | ||
Sammlung von mathematischen Hilfsfunktionen (Runden, Wurzel, Logarithmus, ...). Ein vollständige Übersicht findet ihr in der [[java8:java/lang/Math|Java API Dokumentation]]. | Sammlung von mathematischen Hilfsfunktionen (Runden, Wurzel, Logarithmus, ...). Ein vollständige Übersicht findet ihr in der [[java8:java/lang/Math|Java API Dokumentation]]. | ||
| Zeile 278: | Zeile 392: | ||
! Beispiel | ! Beispiel | ||
|- | |- | ||
| | | Rundet die Zahl <code>zahl</code>. | ||
| double Math.round( double zahl | | {{Java API|java.lang.Math|round-double-|long Math.round(double zahl)}} | ||
| <syntaxhighlight lang="java"> | |||
long gerundet = Math.round(14.235); // 14 | |||
</syntaxhighlight> | |||
|- | |||
| Zufallszahlen zwischen 0 und 1 erzeugen. (1 wird nie erzeugt.) | |||
| {{Java API|java.lang.Math|random--|long Math.random()}} | |||
| <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> | ||
double | double zufall = Math.random(); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |- | ||
| | | Quadratwurzel berechnen. | ||
| double Math. | | {{Java API|java.lang.Math|sqrt-double-|double Math.sqrt(double radikant)}} | ||
| <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> | ||
Math. | double wurzel = Math.sqrt(2); // 1.41 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
=== java.util.Random === | === {{Java API|java.util.Random}} === | ||
Hilfsklasse, um Zufallswerte verschiedener Typen zu erzeugen. | |||
{{Hinweis|Die Klasse muss zuerst ''importiert'' werden. Schreibe in Zeile 1:<br/> | |||
<code>import java.util.Random;</code>}} | |||
{| {{prettytable}} | {| {{prettytable}} | ||
! Beschreibung | ! Beschreibung | ||
! | ! Signatur | ||
! Beispiel | ! Beispiel | ||
|- | |- | ||
| | | Zufällige ganze Zahl von <code>0</code> bis <code>max-1</code> erzeugen. | ||
| {{Java API|java.util.Random|nextInt-int-|int nextInt(int max)}} | |||
() | | <syntaxhighlight lang="java"> | ||
| | 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; | |||
</syntaxhighlight> | |||
|- | |||
| Zufälligen Wahrheitswert erzeugen. | |||
| {{Java API|java.util.Random|nextBoolean--|boolean nextBoolean()}} | |||
| <syntaxhighlight lang="java"> | |||
Random rand = new Random(); | |||
boolean zufall = rand.nextBoolean(); | |||
</syntaxhighlight> | |||
|- | |||
| Zufällige Zahl zwischen 0 und 1 erzeugen, wobei 1 niemals erzeugt wird (exklusive). | |||
| {{Java API|java.util.Random|nextDouble--|double nextDouble()}} | |||
| <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> | ||
Random rand = new Random(); | |||
double zufall = rand.nextDouble(); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
=== java.util.Scanner === | === {{Java API|java.util.Scanner}} === | ||
[[java8: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 <code>System.in</code> erstellt werden: <syntaxhighlight lang="java" inline=1>Scanner konsole = new Scanner(System.in);</syntaxhighlight>. | |||
{{Hinweis|Die Klasse muss zuerst ''importiert'' werden. Schreibe in Zeile 1:<br/> | |||
<code>import java.util.Scanner;</code>}} | |||
{| {{prettytable}} | {| {{prettytable}} | ||
! Beschreibung | ! Beschreibung | ||
! Signatur | |||
! Beispiel | ! Beispiel | ||
|- | |- | ||
| | | Einlesen einer ganzen Zahl. Ist die Eingabe keine Zahl, wird eine {{Java API|java.util.InputMismatchException}} produziert. (Siehe [[{{PAGENAME}}#Fehlerbehandlung|Fehlerbehandlung]] zum Umgang mit Exceptions.) | ||
| {{Java API|java.util.Scanner|nextInt--|int nextInt()}} | |||
| <syntaxhighlight lang="java"> | |||
Scanner konsole = new Scanner(System.in); | |||
int eingabe = konsole.nextInt(); | |||
</syntaxhighlight> | |||
|- | |||
| Einlesen einer Textzeile. Die Eingabe muss mit {{Button|ENTER}} abgeschlossen werden. | |||
| {{Java API|java.util.Scanner|nextLine--|String nextLine()}} | |||
| <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> | ||
Scanner konsole = new Scanner(System.in); | |||
String eingabe = konsole.nextLine(); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
=== Datentyp-Klassen === | === Datentyp-Klassen === | ||
==== {{Java API|java.lang.String}} ==== | |||
{| {{prettytable}} | {| {{prettytable}} | ||
! Beschreibung | ! Beschreibung | ||
! Signatur | |||
! Beispiel | ! Beispiel | ||
|- | |- | ||
| ''' | | Anzahl Zeichen in der Zeichenkette. | ||
| {{Java API|java.lang.String|length--|int length()}} | |||
| <syntaxhighlight lang="java"> | |||
String text = "Hallo, Welt!"; | |||
int zeichen = text.length(); // 12 | |||
</syntaxhighlight> | |||
|- | |||
| Gibt das Zeichen an Index <code>i</code> zurück. Das erste Zeichen hat den Index <code>0</code>. | |||
| {{Java API|java.lang.String|charAt-int-|char charAt( int i )}} | |||
| <syntaxhighlight lang="java"> | |||
char firstChar = "Hallo, Welt!".charAt(0); // 'H' | |||
char fourthChar = "Hallo, Welt!".charAt(3); // 'l' | |||
</syntaxhighlight> | |||
|- | |||
| Wandelt alle Zeichen in Großbuchstaben um. | |||
| {{Java API|java.lang.String|toUpperCase--|String toUpperCase()}} | |||
| <syntaxhighlight lang="java"> | |||
String text = "Hallo, Welt!"; | |||
String upper = text.toUpperCase(); // HALLO, WELT! | |||
</syntaxhighlight> | |||
|- | |||
| Wandelt alle Zeichen in Kleinbuchstaben um. | |||
| {{Java API|java.lang.String|toLowerCase--|String toLowerCase()}} | |||
| <syntaxhighlight lang="java"> | |||
String text = "Hallo, Welt!"; | |||
String upper = text.toLowerCase(); // hallo, welt! | |||
</syntaxhighlight> | |||
|- | |||
| Findet die Position im String, an der der Text <code>suchen</code> zum ersten Mal vorkommt. Kommt der Text gar nicht vor, dann wird <code>-1</code> zurück gegeben. Das erste Zeichen hat den Index <code>0</code>. | |||
| {{Java API|java.lang.String|indexOf-java.lang.String-|int indexOf( String suchen )}} | |||
| <syntaxhighlight lang="java"> | | <syntaxhighlight lang="java"> | ||
String text = "Hallo, Welt!"; | |||
int position = text.indexOf(","); // 5 | |||
text.indexOf("Foo"); // -1 | |||
</syntaxhighlight> | |||
|- | |||
| Ersetzt das erste vorkommen von <code>suche</code> mit <code>ersatz</code>. | |||
| {{Java API|java.lang.String|replaceFirst-java.lang.String-java.lang.String-|String replaceFirst(String suche, String ersatz)}} | |||
| <syntaxhighlight lang="java"> | |||
String text = "Hallo, Welt!"; | |||
text.replaceFirst("Welt", "Wald"); // Hallo, Wald! | |||
</syntaxhighlight> | |||
|} | |||
==== {{Java API|java.lang.Integer}} ==== | |||
{| {{prettytable}} | |||
! Beschreibung | |||
! Signatur | |||
! Beispiel | |||
|- | |||
| Konvertiert einen String in eine Zahl. | |||
| {{Java API|java.lang.Integer|parseInt-java.lang.String-|int Integer.parseInt(String text)}} | |||
| <syntaxhighlight lang="java"> | |||
String text = "5"; | |||
int zahl = Integer.parseInt(text); | |||
</syntaxhighlight> | |||
|- | |||
| Konvertiert eine Zahl in einen String. | |||
| {{Java API|java.lang.Integer|toString-int-|String Integer.toString(int zahl)}} | |||
| <syntaxhighlight lang="java"> | |||
int zahl = 5; | |||
String alsText = Integer.toString(zahl); | |||
</syntaxhighlight> | </syntaxhighlight> | ||
|} | |} | ||
Zu allen primitiven Datentypen gibt es eigene Datentyp-Klassen (sog. ''Wrapper-Klassen''): | |||
* {{Java API|java.lang.Character}} | |||
* {{Java API|java.lang.Byte}} | |||
* {{Java API|java.lang.Short}} | |||
* {{Java API|java.lang.Long}} | |||
* {{Java API|java.lang.Double}} | |||
* {{Java API|java.lang.Float}} | |||
* {{Java API|java.lang.Boolean}} | |||
[[Kategorie:Befehlsreferenz]][[Kategorie:Java]] | [[Kategorie:Befehlsreferenz]][[Kategorie:Java]] | ||
Aktuelle Version vom 13. März 2021, 14:46 Uhr
Diese Seite ist auch erreichbar unter link.ngb.schule/befehle-java
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 + 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:
- Strings besitzen Methoden, um mit den enthaltenen Zeichnketten zu arbeiten:
int String.length()- Ermittelt die Länge der Zeichenkette.String String.toUpperCase()- Erstellt eine Kopie der Zeichenkette, die nur aus Großbuchstaben besteht.- Und noch viele mehr ...
- 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) |
if( i > 5 ) {
System.out.println('i ist grösser als 5');
}
| |
| if-else-Anweisung
(Alternative) |
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 | 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 |
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.
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);.
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 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):