Hallo,
ich mache zur Zeit das Tutorial für Anfänger auf der Seite Servervoice.de
Allgemein ist alles recht gut erklärt, nur würde ich gern in 2 Zeilen genauer verstehen was passiert.
Das Programm stellt mir die Frage
"Wie ist dein Name?"
Liest meine Eingabe und antwortet darauf mit
"Hallo Philipp"
Hier ist der Quelltext
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/package javaapplication3;importjava.io.BufferedReader;importjava.io.InputStreamReader;/**
*
* @author Philipp
*/publicclassMain{/**
* @param args the command line arguments
*/publicstaticvoidmain(String[] args){System.out.println("Whats ya name");try{BufferedReader input=newBufferedReader(newInputStreamReader(System.in));String strInput;
strInput = input.readLine();System.out.println("Hallo "+strInput);}catch(Exception ex){System.out.println("Fehlerhafte Eingabe");}// TODO code application logic here }}
Meine Fragen sind:
Was genau passiert in diesen Zeilen und was bei welchem Befehl?
erzsugt ein neues BufferedReader Objekt , das mit diesen befehlen:
Java:
String strInput;
strInput = input.readLine();
eine eingebene zeile einlist und in dem string strinput speichert.
der catch befehl tritt dann in kraft wenn im try block eine exeption vom deklarierten typ geworfen wird
Damit wird ein neues Objekt namens input erzeugt, welches von der Klasse BufferedReader ist. In der Java-Dokumentation erfährst du dazu, dass diese Klasse dazu dient, Text aus dem Eingabestrom (System.in) zu lesen. Zum InputStreamReader (ebenfalls eine Klasse) findet sich in der Dokumentation der Hinweis, dass sie am besten in Kombination mit einem BufferedReader verwendet werde, was hier geschehen ist.
Java:
String strInput;
Das erzeugt ein neues String-Objekt namens strInput.
Java:
strInput = input.readLine();
Hier wird die Eingabe (ausgelöst durch die rechte Seite vom =-Zeichen) dem zuvor angelegten String zugewiesen. readLine() ist eine Methode der Klasse BufferedReader, und da input ein Objekt dieser Klasse ist, kann sie diese Methode verwenden.
System.in ist der Eingabestrom aus der Konsole, der wird in ein Objekt (InputStreamReader) gepackt das sowas lesen kann, diese wird in einen BufferedReader gepackt, der gepuffert Textzeichen aus einem solchen Eingabestrom lesen kann.
Java:
strInput = input.readLine();
readLine() liest solange vom Eingabestrom bis über diesen ein Zeilenumbruch kommt und gibt dann diese Zeile als String zurück.
bzgl. dem catch: Beim Lesen und Schreiben in und aus Datenströmen kann es zu unterschiedlichsten Fehlern kommen. s. API - Doku BufferedReader#readLine()
Warum kann ich den Quelltext nicht in netbeans speichern sodass ich ihn mir später nochmal anschauen kann?? Bin jetzt zu hause und habe das tutorial nochmal gemacht und versucht ein bisschen mit meinem Gedächtnis zu arbeiten
Java:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/package javaapplication1;importjava.io.BufferedReader;importjava.io.InputStreamReader;/**
*
* @author FPZ 187
*/publicclassMain{/**
* @param args the command line arguments
*/publicstaticvoidmain(String[] args){System.out.println("Wie ist dein Name??");try{BufferedReader input=newBufferedReader(newInputStreamReader(System.in));String strInput;
strInput = input.readLine();System.out.println("Na, wie gehts "+strInput +"?");}catch(Exception ex){System.out.println(" Da ging was falsch!");}// TODO code application logic here}}
Ich habe NetBeans gerade mal testweise angeworfen (ist zwar bei mir installiert, hab aber noch nie damit gearbeitet - bevorzuge weiterhin gEdit *g*) und bin folgendermaßen vorgegangen:
1. Klick auf "File -> New Project"
2. "Categories: Java -> Java Application"
3. "Project Name": Something (war hier gerade der Name der Main Class von meinem Test-Quelltext)
4. Haken bei "Create Main Class" (Name ist something.Main) -> Klick auf Finish
5. Quelltext reinkopieren
6. Klick auf "Run -> Run Main Project" -> Programm startet erfolgreich (keine Ahnung, wann NB es kompiliert hat, aber es funktioniert ^^)
ich hab jetzt mit netbeans angefangen und finde mich ganz gut zurecht. ich konnte wohl einfach ne speichern da der code durch autosave schon gespeichert war