Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 23-11-2006, 13.21.56   #1
Downloader
Gold Member
Top Poster
 
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
Downloader promette bene
[JAVA] Chiarimento sulla classe BufferedReader

Codice:
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
Allora, vado a dichiarare un oggetto 'input' di tipo 'BufferedReader' (classe che appartiene al package io).

Con 'new' vado a costruire l'oggetto e...nel metodo costruttore che diavolo è tutta quella roba??

Una volta istanziato l'oggetto 'input' di quali metodi potrà disporre?? Solo quelli di BufferedReader o anche quelli di InputStreamReader??


Forse la domanda è un po' sciocca, ma non avendo mai visto l'implemetazione in un costuttore di un'istanza di un nuovo oggetto resto un attimino stordito.


tnx!
Downloader non è collegato   Rispondi citando
Vecchio 23-11-2006, 14.12.47   #2
Dav82
Gold Member
Top Poster
 
Registrato: 18-07-2002
Messaggi: 6.399
Dav82 promette bene
Alùra, senza perdersi in dettagli e dettaglietti (che per altro non ti saprei spiegare, ecco perché evito ), BufferedReader è un buffer (appunto, altrimenti mica lo chiamavano così)... e che cosa bufferizza? Uno stream. Lo stream che viene bufferizzato è quello passato come parametro, ovvero un oggetto di tipo Reader. Ma su cosa si sincronizza questo Reader? Su cosa si basa? In poche parole: che cosa legge? Legge (e si sincronizza su) l'oggetto che gli viene passato come parametro, ovvero System.in, che è nient'altro che l'oggetto che rappresenta l'input standard correntemente specificato nel sistema.

Se guardi nella documentazione, BufferedReader è una sottoclasse di java.io.Reader e, tramite questa, di java.lang.Object, per cui eredita i metodi di queste due classi... nella documentazione sono elencati appunto sotto quelli specifici della classe BufferedReader.


Il creare un oggetto on the fly direttamente nel costruttore di un altro, per usarlo come parametro da passare, è pratica comune, perchè evita di scrivere troppe dichiarazioni e linee di codice, anche se magari complica un po' la dichiarazione stessa... fattoci l'occhio cmq non è un gran problema
Ricorda solamente che, nel caso poi ti serva l'oggetto dichiarato on the fly (in questo caso quello di tipo Reader), non potrai usarlo, perchè non hai un riferimento (nome di variabile), a meno che l'oggetto "esterno" (in questo caso il BufferedReader) non fornisca un metodo per referenziarlo... in questo caso dalla documentazione sembra che questo metodo non ci sia (potrebbe essere tipo Reader getReader())
Nel caso il metodo per accedere all'oggetto "nascosto" non ci sia, e a te serva accedere comunque a questo oggetto, puoi spezzare la dichiarazione in più parti, per esempio in questo caso così:

Quota:
InputStreamReader pippo = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(pippo);

Ciao
Dav82 non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
[JAVA] Risorse e Manuali NS-1 Programmazione 8 20-10-2008 00.51.32
Sparizione finestra programmi sulla Barra Applicazioni sugarnet69 Windows 7/Vista/XP/ 2003 26 09-11-2006 23.52.51
Un chiarimento sulla Portabilità Numero Cellulare. Flying Luka Multimedia | audio - video 15 28-07-2006 00.58.39
F1 per avvio di windows filll Hardware e Overclock 22 23-06-2004 17.15.36
Il giornale in classe Paco Chiacchiere in libertà 26 29-08-2003 12.45.44

Orario GMT +2. Ora sono le: 07.01.04.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.