Umsetzungshilfe Java Teil 1 - Berufsschule 7 in Augsburg

Werbung
Umsetzungshilfe Java Teil 1
Name
1
AnPr
Klasse
Datum
Allgemeines
In unseren Programmen werden Daten eingegeben, verarbeitet und wieder ausgegeben (EVA-Prinzip). Da
wir am Anfang noch keine sehr umfangreichen Programme erstellen, sind die drei Bereiche noch nicht in
einzelne Unterprogrammstrukturen zu gliedern. Trotzdem sollte darauf geachtet werden, dass die grundsätzliche Struktur erkennbar bleibt. In dieser Umsetzungshilfe sollen Zusatzinformationen vor allem für die Einund Ausgabe erklärt werden, so dass sie einfach in Ihren Programmen angewendet werden können.
Da unsere Programme sich im Wesentlichen auf die Verarbeitung konzentrieren, wird an dieser Stelle jedoch
nur auf sehr einfache Funktionalitäten der Ein- und Ausgabe eingegangen. Java bietet sehr viel mehr als die
hier gezeigten Möglichkeiten – das hier dargestellte soll jedoch für unsere ersten Programme ausreichen.
2
Ausgabemöglichkeiten
2.1 Konsolenausgeben
Die einfachste Möglichkeit Daten anzuzeigen ist über die Konsolenausgabe. Der Befehl hierzu ist
System.out.println():
public class AusgabeTest1 {
public static void main(String[] args) {
String sAusgabe = "Meine Ausgabe";
System.out.println(sAusgabe);
}
}
In dem oberen Codebesipiel wird in einer Stringvariablen ein Wert abgelegt und anschließend der Inhalt der
Stringvariablen ausgegeben.
Der Befehl println bewirkt, dass nach der Ausgabe ein Zeilenumbruch erfolgt. Wenn man dies nicht
möchte, so muss man über den Befehl System.out.print() gehen. Wenn innerhalb eines Strings ein
Zeilenumbruch erfolgen soll, so erreicht man dies mit „\n“:
public class AusgabeTest2 {
public static void main(String[] args) {
String sAusgabe = "Zeile1\nZeile2";
System.out.println(sAusgabe);
}
}
ANPR_UmsetzungshilfeJava1_v01.docx
Seite 1
Umsetzungshilfe Java Teil 1
AnPr
2.2 Popup Information
Eine weitere Möglichkeit ist ein einfaches Popup Fenster zu erzeugen:
import javax.swing.JOptionPane;
public class AusgabeTest3 {
public static void main(String[] args) {
String sAusgabe = "Meine Ausgabe";
JOptionPane.showMessageDialog(null, sAusgabe);
}
}
Im gezeigten Code wird ein einfacher Dialog erzeugt und der sAusgabe String angezeigt. Der erste Parameter der Methode, welcher mit „null“ belegt ist dient für die Referenz zu einem darunterliegenden Dialog und ist für uns momentan nicht wichtig, da wir noch keine grafisch orientierten Programme schreiben.
3
Eingabemöglichkeiten
3.1 JOptionPane.showInputDialog()
Die einfachste Möglichkeit, dem User eine Eingabe abzuverlangen die Methode „showInputDialog()“
in der Klasse „JOptionPane“. Die Methode liefert ein Popup Fenster, in dem eine Eingabe erfolgt. Der
eingegebene Wert wird von der Methode an den Aufrufer zurückgegeben. Folgender Code soll dies verdeutlichen:
import javax.swing.JOptionPane;
public class EingabeTest1 {
public static void main(String[] args) {
String sEingabe = JOptionPane.showInputDialog("Bitte Eingabe:");
System.out.println(sEingabe);
}
}
Bei Start des Programms erscheint ein Popup Fester,
dessen Text „Bitte Eingabe“ aus dem Parameter des
Methodenaufrufs entnommen wurde:
Wenn nun der Text „Hallo“ eingegeben wird und auf „OK“ geklickt wird, so erscheint der Text „Hallo“ in
der Konsole. Dies liegt daran, dass in eine Stringvariable (namens sEingabe) deklariert wurde, in die der
Wert abgespeichert wurde, welcher von der Methode showInputDialog() zurückgegeben wurde. Dies
ist der eingegebene Text. Wird auf „Abbrechen“ geklickt, so wird der Wert null zurückgegeben, was soviel
heißt wir „nichts“.
Die Methode showInputDialog() gibt es noch in vielen anderen Variationen, für uns jedoch reicht die
hier beschriebene aus.
3.2 Konsoleneingaben
Eine weitere Möglichkeit ist, die Eingabe direkt über die Konsole zu bewerkstelligen. Die Methode ist zwar
komplizierter, wird jedoch von manchen Schülern vorgezogen, da die Ausgaben bei uns im Regelfall über
System.out.println() ebenfalls über die Konsole erfolgt.
Seite 2
AnPr
Umsetzungshilfe Java Teil 1
Java bietet auch hier mehrere Möglichkeiten an, über die Konsole Werte einzugeben. Hier der gängigste über
den BufferedReader, welcher einen Eingabestrom einliest:
import java.io.*;
public class EingabeTest2 {
public static void main(String[] args) {
BufferedReader bfrd =
new BufferedReader(new InputStreamReader(System.in));
System.out.print("Bitte Eingabe: ");
String sEingabe = "";
try {
sEingabe = bfrd.readLine();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(sEingabe);
}
}
Zuerst wird der BufferedReader erzeugt, wobei ihm über den Parameter (System.in) mitgeteilt wird,
dass der Datenstrom der Standard Input Stream ist, was üblicherweise die Tastatur ist. Der try/catch
Bereich ist lediglich zum Abfangen von möglichen Fehlersituationen und über printStackTrace()
ausgegeben wird. Wichtig ist bfrd.readLine(); in der die Tastatureingabe gelesen wird und der Wert
in den String „sEingabe“ übergeben wird.
4
String nach Zahlen parsen
Eingaben werden im Regelfall als String Wert zurückgegeben. Um nun eine Zahlenvariable daraus zu machen müssen die Strings geparst werden.
4.1 String zu ganzen Zahlen
Der Datentyp für ganze Zahlen ist üblicherweise int. Folgender Code wandelt einen String in eine int
Zahl um und beweist dies mit der Ausgabe eines Rechenergebnisses:
public class Stringwandlung1 {
public static void main(String[] args) {
String sZeichenkette = "2";
int iZahl = Integer.parseInt(sZeichenkette);
System.out.println(iZahl + 10);
}
}
4.2 String zu Gleitkommazahlen
Der Datentyp für Gleitkommazahlen ist üblicherweise double. Folgender Code wandelt einen String in
eine double Zahl um und beweist dies mit der Ausgabe eines Rechenergebnisses:
public class Stringwandlung1 {
public static void main(String[] args) {
String sZeichenkette = "2";
double dZahl = Double.parseDouble(sZeichenkette);
System.out.println(dZahl + 10.0);
}
}
Seite 3
Umsetzungshilfe Java Teil 1
5
AnPr
Stringvergleiche
Strings können nicht mit dem „normalen“ Vergleichsoperator verglichen werden, da sie Objekte sind, und
somit der Vergleichsoperator nur die Gleichheit der Objekte, nicht deren Inhalte prüft. Um nun zu prüfen, ob
ein String den gleichen Inhalt hat wie ein zweiter String, ist die Methode .equals() anzuwenden:
import javax.swing.JOptionPane;
public class StringvergleichTest1 {
public static void main(String[] args) {
String sEingabe = JOptionPane.showInputDialog("Bitte Ja eingeben:");
if (sEingabe.equals("Nein"))
{
System.out.println("Wer hat was von Nein gesagt?");
}
}
}
Im oben genannten Code wird in der Verzweigung geprüft, ob der User „Nein“ eingegeben hat, in der
sEingabe Variable also der Wert „Nein“ steht.
6
Zufallszahlen
Wenn der Computer per Zufall einen Wert ermitteln soll, ist hier die Bibliotheksklasse „Random“ zu verwenden. Sie ermöglicht pseudozufällige Zahlen zu erzeugen.
import java.util.Random;
public class ZufallTest1 {
public static void main(String[] args) {
Random myRnd = new Random();
int iRandom = 0;
for (int i = 0; i < 20; i++)
{
iRandom = myRnd.nextInt(6);
System.out.println(iRandom);
}
}
}
Um diese zu nutzen, muss zuerst am Anfang des Programms ein Random Objekt „new Random()“ erzeugt werden. Das erzeugte Random Objekt wird mit der aktuellen Systemzeit als Millisekundenwert initialisiert. Basierend darauf wird eine Pseudozufallszahl erzeugt. Diese kann nun pro Durchlauf abgerufen werden.
Im gezeigten Code wird eine Zufallszahl zwischen 0 und 5 ausgegeben, da die Zufallszahlerzeugung mit
dem Parameter „6“ aufgerufen wird.
Seite 4
AnPr
7
Umsetzungshilfe Java Teil 1
Lizenz
Diese(s) Werk bzw. Inhalt von Maik Aicher (www.codeconcert.de) steht unter einer
Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.
Seite 5
Herunterladen