Grundlegendende Programmierkonzepte in Java
Hier lernst du die grundlegenden Konzepte kennen und hast die Möglichkeit, dies als Tagebuch festzuhalten.
Ein- und Ausgabe
Noch
haben wir kein wirklich dynamisches Programm. Es erzeugt noch immer
eine Ausgabe, die sich nur während der Programmierung und nicht während
der Laufzeit ändern lässt. Das wollen wir jetzt ändern. Ziel ist es
einen Dialog zur Ein- und Ausgabe von Daten zu erstellen.
Hierfür
bietet Java unter anderem sogenannte Scanner an. Ein Scanner kann aus
sogenannten InputStreams zeilenweise lesen. Für unser Beispiel wollen
wir den InputStream System.in verwenden. Dieser nimmt die Eingaben aus
der Konsole entgegen, in der das Programm ausgeführt wird. Das
Gegenstück zu System.in ist System.out. System.out ist ein sogenannter
OutputStream. Genau genommen der OutputStream, der in die Konsole führt
in der das Programm gestartet wurde.
Um den Scanner
verwenden zu können, müssen wir ihn wieder als erstes als Variable
deklarieren und danach initialisieren. Zur Initialisierung von Objekten
wird in Java das Schlüsselwort “new” verwendet und danach eine Methode
aufgerufen, die genau wie der Typ heißt. Wir schreiben also Scanner
scanner = new Scanner(System.in);
Nach der
Initialisierung ist der Scanner bereit zur Verwendung. Mit der Methode
scanner.next() kann jetzt eine Zeile von der Konsole gelesen werden.
Wird die Methode aufgerufen, so wartet das Programm auf Eingaben des
Benutzers und wird erst fortfahren, wenn der Benutzer die Eingabe mit
Enter bestätigt. Die Methode gibt die Zeile als String zurück.
Als vollständiges Beispiel ergibt sich:
import java.util.Scanner; public class Tagebuch { public static void main(String[] args) { System.out.println("Wie heißt du?"); Scanner scanner = new Scanner(System.in); String name = scanner.next(); scanner.close(); System.out.println("Hallo " + name + "!"); } }
Das Schließen des Scanners ist in unserem Beispiel eigentlich nicht erforderlich. Es ändert nichts. Dennoch ist es eine gute Praxis die close-Methoden zu verwenden, wenn ein Datentyp diese anbietet und das jeweilige Objekt ausgebraucht ist. Erst hierdurch wird Java mitgeteilt, dass die verwendete Eingabe-Ressource nicht mehr gebraucht wird. Java gibt dann die Ressource frei und entlastet damit das Betriebssystem, welches die Ressource sonst weiter bereitstellen müsste. In unserem Beispiel ist das noch nicht kritisch, da mit dem Beenden des Programms ohnehin alle Ressourcen freigegeben werden.