|
| 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 » | |
23-11-2006, 13.21.56 | #1 |
Gold Member
Top Poster
Registrato: 04-09-2002
Loc.: Roma
Messaggi: 4.022
|
[JAVA] Chiarimento sulla classe BufferedReader
Codice:
BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); 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! |
23-11-2006, 14.12.47 | #2 | |
Gold Member
Top Poster
Registrato: 18-07-2002
Messaggi: 6.399
|
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:
Ciao |
|
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
|
|
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 |