Visualizzazione dei risultati da 1 a 8 su 8

Discussione: domanda su codice java

  1. #1

    domanda su codice java

    Salve, ho un dubbio in una riga di codice di questa classe:

    import java.io.*;
    public class Esempio4 {
    public static void main(String args[]){
    FileReader fin = null;
    try {
    fin = new FileReader("Prova.txt");
    }
    catch(FileNotFoundException e){
    System.out.println("File non trovato");
    System.exit(3);
    }
    try {
    while(fin.ready()){


    char ch = (char) fin.read();
    /* cosa vuol dire sto char tra parentesi???*/


    System.out.print(ch); // echo
    }
    System.out.println("");
    }
    catch (IOException e){
    System.out.println("Errore di input");
    System.exit(4);
    }
    }

    cosa vuol dire sto char tra parentesi??? E' un errore delle dispense del mio professore o è così??
    Vi ringrazio a tutti anticipatamente
    -- utente Kubuntu --

  2. #2
    e' una operazione di casting. In questo modo mi assicuro che il risultato di fin.read sia un opggeto di tipo char.
    Infatti il metodo read() restituisce un int, che io casto a char.

  3. #3
    Tutto qui Caimano?
    posso usarlo in quasi tutti i metodi di tutte le classi?
    -- utente Kubuntu --

  4. #4
    quando hai una cosa del tipo (nomeclasse)oggetto_classe stai facendo un casting, ovvero stai forzando l'oggetto oggetto_classe ad essere di tipo nomeclasse.
    Questo è sempre possibile farlo, ma naturalemnte se il casting non sarà possibile ottieni un classCastException.
    Ad esempio, la classe Vector del package java.util gestisce un vettore di Oggetti, cioè accetta qualsiasi oggetto della classe Object o sua derivata (e quindi in pratica tutte, perchè tuttwe le classi esetndono in maniera implicita la classe object).
    Quando fai su un oggetto di tipo Vector l'operazione v.getElementAt(i) (che restituisce l'elemento in posizione i) resituisce nu oggetto di tipo Object. Se non fai un casting esplicito l'oggetto restituito sarà di tipo Object. Ma se tu sai che hai un vettore di Integer, allora puoi fare
    Integer element = (Integer) v.elementAt(i);
    Naturalemente se l'oggetto in posizione i non è castabile ad Integer (cioè non è della classe Integer o sua superiore) avrai un classCaseException.

  5. #5
    Grazie Caimano, sei stato chiarissimo.
    Mi hai chiarito un po le idee ;-)
    -- utente Kubuntu --

  6. #6
    prego, fanno 30 euro!!

  7. #7
    -- utente Kubuntu --

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    3
    Pienamente daccordo riguardo la precisione e completezza della riposta ....solo una piccola precisazione terminologico (se posso permettermi) : char non è un oggetto è un tipo primitivo.
    Ciao .

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.