Variable oder eine neue Instanz????
-
Hi Leute, mich würde folgendes interessieren.
Bin gerade dabei mit Java ein wenig zu arbeiten und habe folgende Frage (aber erst ein kleiner Programmabschnitt)BufferedReader tastatur = new BufferedReader(new InputStreamReader (System.in));
Meine Frage ist, ist "tastatur" nun eine neue Instanz oder wird hier nur eine Variable zur Tastatutreingabe gebildet?? Mir ist weiterhin bekannt, dass BufferedReader eine Klasse des Packages java.text ist, also müsste es sich doch um eine Instanzbildung handeln. Leider habe ich auch folgende Zeilen gefunden, die mich verwirrt haben (ist eine kleiner Auszug aus dem Programm):
String str;
int eingabe;
BufferedReader tastatur;und das hat mir den Rest gegeben
Mir ist bekannt, dass neue Instanzen mit new und einem Konstruktor gebildet werden aber jetzt bin ich total blabla
-
tastatur ist eine neue Instanz der Klasse BufferedReader.
tastatur ist keine neue Variable für System.in.Ein BufferedReader kapselt (= verpackt in sich) einen InputStreamReader der wiederrum einen InputStream kapselt.
System.in (die Standardeingabe) ist ein solcher InputStream. Damit man von einem InputStream Zeichen lesen kann benützt man einen InputStreamReader. Damit man ganze Zeilen bequem lesen kann einen BufferedReader.
Also legt man einen neuen BufferedReader an und übergibt ihm den zu bearbeiteten InputStreamReader und dem wiederrum den zugehörigen InputStream.
Ich hoffe das ist halbwegs angekommen
MfG SideWinder
-
monet schrieb:
BufferedReader tastatur = new BufferedReader(new InputStreamReader (System.in));
Meine Frage ist, ist "tastatur" nun eine neue Instanz oder wird hier nur eine Variable zur Tastatutreingabe gebildet??
Ich versteh dich Frage ein wenig anders als SideWinder. tastatur ist eine Referenz (also eine Variable eines Referenztyps), die auf eine neue Instanz vom Typ BufferedReader verweist.
String str;
int eingabe;
BufferedReader tastatur;und das hat mir den Rest gegeben
Hier verweist tastatur auf gar nichts (null). Man kann ihr später eine Instanz, entweder eine vorhandene oder eine neue, zuweisen.
-
Hi SideWind,
also ist " BufferedReader tastatur; " keine Variablendeklaration, wie z.B.
"int Zahl1;", habe ich das so richtig verstanden??
Habe erst vor kurzem mit Java begonnen. Deshalb meine Verständnisprob.
-
Hi Bashar,
ich habe gedacht Referenzen werden nur innerhalb eines Klassenkörpers gebildet??Geht das dann auch innerhalb einer Methode?
-
monet schrieb:
ich habe gedacht Referenzen werden nur innerhalb eines Klassenkörpers gebildet??
Warum das denn?
-
Mit solchen Fragen kannst du die Leute hier total verwirren. Nach ca. 200 Seiten sinnloser Diskussionen, sind wir bei einem Assemblerbefehl, der irgendwas beweisen soll. Ab Seite 100 gehen die Zeit-Messprogramme los. Zur Zeit bilden sich noch die Fronten, was man an der äußerst neckischen Antwort
Warum das denn?
erkennen kann Viel spass monet!
-
personenkult schrieb:
neckischen Antwort
Noch gehts um Fakten, wenn die ersten Blauen Bohnen fliegen zieh ich mich aus dem Fred zurück
-
wie Ihr vielleicht an meiner unterschwelligen Andeutung bemerkt habt besitze ich kein fundierten Kenntnisse in Java und anderen Sprachen.
Aber warum verwirre ich denn die Leute hier, mit meinen Fragen??
Ich glaube ich muss mich noch ein wenig weiter einlesen. Hab hier mal was von einem Buch mit dem Titel "Java ist auch eine Insel" gelsen, was haltet Ihr denn davon. Werden dann hoffentlich meine Fragen nicht weiterhin für allgemeinen Verrwirung sorgen?????? Oder vielleicht doch