====== Erste Schritte ======
===== Grundlagen =====
Die folgenden Beispiele setzen Grundkenntnisse der Programmiersprache ''Java'' voraus - etwa:
- Wozu dient der Java-Compiler javac?
- Was bewirkt der Bytecode-Interpreter java?
- Wie werden grundlegende Programmstrukturen in Java verwirklicht?
- Wie werden Variable und Instanzen deklariert?
Die Beispiele handeln zunächst davon, dass Programme "auf der Kommandozeile" aufgerufen werden. Ein- und Ausgabe wird also über die Text-Kommandozeile des Terminalfensters abgewickelt. Da Java ursprünglich in erster Linie für grafische Benutzeroberflächen entwickelt wurde, sind die Ein- und Ausgabeprozeduren auf der Kommandozeile reichlich kompliziert...
===== Übungsziele =====
* Aufbau eines Java-Programmes
* Verwendung von Variablen
* Ausgabe von Daten
* Verwendung von ''System.out.print''
===== Elementare Programme =====
==== Minimalprogramm ====
Im folgenden Beispiel ''hallo.java'' ist ein minimales Java-Programm dargestellt. Der Name der Klasse muss mit dem Dateinamen (bis auf die Dateinamenergänzung) übereinstimmen.
public class hallo {
public static void main (String [] arguments) {
System.out.println("Informatik ist schön");
}
}
Das Programm wird mit Hilfe des Java-Compilers javac übersetzt:
javac hallo.java
Compilation finished at Sun Dec 8 00:30:13
Das compilierte Programm wird entweder über die Entwicklungsumgebung oder auf der Kommandozeile ausgeführt:
java -classpath /usr/lib/java/lib/classes.zip:/home/alfred/java/kurs hallo
Informatik ist schön
Process hallo finished
Kommentare werden (wie in PHP) durch die Zeichenfolge %%//%% innerhalb einer Zeile angegeben. Mehrzeilige Kommentare stehen zwischen %%/*%% und %%*/%%.
==== Primitive Datentypen ====
Java stellt 8 primitive Datentypen zur Verfügung: ''byte, short, int, long, float, double, char, boolean''.
public class typen {
public static void main(String [] arguments) {
int a=1;
int b=2;
System.out.println(a + " + " + b + " = " + (a+b));
}
}
liefert die Ausgabe
1 + 2 = 3
Hier eine Programm mit Verwendung der Klassen ''out.class'' und ''in.class''. (Diese beiden Klassen vereinfachen die Ausgabe und die Eingabe ganz wesentlich.)
public class Summe
{
public static void main(String[] arg)
{int i,j;
Out.println("Bitte zwei Zahlen eingeben! ");
Out.print("Erste Zahl: "); i=In.readInt();
Out.print("Zweite Zahl: "); j=In.readInt();
Out.println("Summe = "+(i+j));
}
}
\\ \\
==== Operatoren ====
Java verwendet die üblichen Operatoren für die Verknüpfung von Zahlen, Zeichen oder logischen Ausdrücken (vgl. PHP).
===== Schleifen =====
==== Zählschleifen ====
Solange der Wert der Schleifenvariablen (''Laufvariable'') kleiner als der angegebene Wert ist, werden die Anweisungen innerhalb der Schleife ausgeführt. Bei jedem Schleifendurchlauf wird der Wert der Schleifenvariable um einen bestimmten Wert erhöht.
public class schleife1 {
public static void main (String [] arguments) {
for (int i=1;i<=10;i++) {
System.out.println(i + " zum Quadrat ergibt: " + (i*i));
}
}
}
==== Kopfgesteuerte Schleife ====
Solange die Bedingung im Schleifenkopf erfüllt wird, wird die while - Schleife druchlaufen. Ist die Bedingung nie erfüllt, wird die Schleife überhaupt nicht durchlaufen.
public class schleife2 {
public static void main(String [] args) {
int i=1;
while (i<=10) {
System.out.println(i + "^2 = " + (i*i));
i++;
}
}
}
Im Vergleich dazu wird eine fußgesteuerte do while - Schleife mindestens einmal durchlaufen, weil die Bedingung erst am Ende getestet wird.
===== Verzweigungen =====
==== Die if - Anweisung ====
Die if - Anweisung lässt eine einfache Bedinung zu. Die unmittelbar nach der Bedinung angegebene Anweisung (oder der in geschwungene Klammern eingeschlossene Anweisungsblock) wird nur dann ausgeführt, wenn die Bedingung erfüllt ist((Beachte, dass alle Bedingungen Boole'sche Werte ergeben müssen!)).
public class verzweigung1 {
public static void main (String [] arguments) {
int note = 5;
if (note == 1) System.out.println ("Sehr gut");
if (note == 5) System.out.println("Schade");
}
}
Das letzte Beispiel zeigt, wie wichtig Benutzereingaben sind...
==== Der else - Zweig ====
Ein else - Zweig wird nur dann ausgeführt, wenn der nach der Bedingung einer if - Anweisung stehende Anweisungblock nicht ausgeführt wurde.
public class verzweigung1 {
public static void main (String [] arguments) {
int a = 3;
if (a == 1) System.out.println ("Sehr gut");
else if (a == 5) System.out.println("Schade");
else System.out.println("ok");
}
}
==== Die Mehrfachverzweigung ====
Mit Hilfe der switch - Anweisung wird eine Mehrfachverzweigung realisiert:
public class verzweigung2 {
public static void main (String [] arguments) {
int note = 31;
switch (note) {
case 1: System.out.println("Sehr gut"); break;
case 2: System.out.println("Gut"); break;
case 3: System.out.println("Befriedigend"); break;
case 4: System.out.println("Genügend"); break;
case 5: System.out.println("Nicht genügend"); break;
default: System.out.println("Keine gültige Note"); break;
}
}
}
===== Methoden =====
Methoden stellen in Java Unterprogramme dar, wie sie in anderen Programmiersprachen in Form von Funktionen auftreten((Da in Java ausschließlich Klassen verwendet werden, werden alle auftretenden Funktionen folgerichtig als Methoden bezeichnet.)).
public class methoden1 {
public static double quadrat(double i) {
return i*i;
}
public static void main(String [] args) {
for (int i=1; i<=10; i++) {
System.out.println(i + "^2= " + quadrat(i));
}
}
}