Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447

    Passaggio da C++ a Java

    Ciao a tutti, da pochi giorni ho iniziato a studiarmi java, finora ho avuto esperienze di programmazione "significative" solo con C/C++.

    Avendo quindi già conoscenze su concetti come strutture condizionali, cicli, classe.. etc. ho deciso di acquistare un buon libro dove potessi studiare prima di tutto la sintassi di Java. Tuttavia quello che non riesco proprio a trovare è una spiegazione di come poter implementare una funzione per poi poterla richiamare altrove, quello che nel C++ veniva fatto così:
    codice:
    int fun(par)
    {
    	//...
    }
    
    int main(){
    	int i = fun(par);
    	//...
    	return 0;
    }
    Un altro dubbio che non riesco a togliermi leggendo semplicemente il libro è il seguente: quando dovevo ricevere in input un valore/dato con il C++ mi limitavo a dichiarare una variabile e con l'oggetto cin inserivo il nuovo valore. Adesso invece mi sembra di capire che prima ancora di poter gestire l'inserimento da tastiera di un valore deve essere allocato un oggetto. Tuttavia mentre nel mio libro trovo questo esempio:
    codice:
    Scanner sc = new Scanner(System.in);
    int i = sc.nextInt();
    facendo una ricerca su internet vedo più frequentemente questa:
    codice:
    BufferedInputStream bu = new BufferedInputStream(System.in);
    int i = bu.nextInt();
    Allora mi chiedo... qual'è la forma migliore per gestire input?Perchè è necessario ogni volta allocare un oggetto per poter inserire un input(la domanda mi sorge spontanea visto la gestione dell'input del C++ con cin)?

    Grazie in anticipo per tutte le risposte.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Passaggio da C++ a Java

    Originariamente inviato da Pacio88
    Avendo quindi già conoscenze su concetti come strutture condizionali, cicli, classe.. etc. ho deciso di acquistare un buon libro.
    Io consiglio sempre quello che ho linkato qui (versione ita/eng). Ottimo e validissimo!!!

    Originariamente inviato da Pacio88
    Tuttavia quello che non riesco proprio a trovare è una spiegazione di come poter implementare una funzione per poi poterla richiamare altrove, quello che nel C++ veniva fatto così:
    codice:
    int fun(par)
    {
    	//...
    }
    
    int main(){
    	int i = fun(par);
    	//...
    	return 0;
    }
    In Java la classe è l'elemento fondamentale e non ci sono "funzioni" ma "metodi".

    Esempio con metodi statici nella stessa classe.
    codice:
    public class Esempio {
        private static int mioMetodo(.....) {
            // ....
        }
    
        public static void main(String[] args) {
            int i = mioMetodo(....);
        }
    }
    Originariamente inviato da Pacio88
    codice:
    Scanner sc = new Scanner(System.in);
    int i = sc.nextInt();
    Corretto e fa quello che ci si aspetterebbe. Se inserisci da tastiera la sequenza di caratteri '1' poi '2' e poi '3' (come "token" a sé stante) ottieni alla fine un int con valore 123 decimale.

    Originariamente inviato da Pacio88
    codice:
    BufferedInputStream bu = new BufferedInputStream(System.in);
    int i = bu.nextInt();
    Sbagliato ... a parte il fatto che NON esiste un nextInt() in BufferedInputStream (non so dove l'hai letto sto codice ...) ma in ogni caso usare un XXXInputStream per leggere da tastiera non è quello che risulta più utile ... se digiti il carattere '1', leggendo i byte "crudi" dall'input ottieni un codice 0x31 ovvero il codice ASCII del '1' .... non so quanto ti serva!!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di Pacio88
    Registrato dal
    Sep 2007
    Messaggi
    447
    Grazie per tutte le risposte.

    Il libro che mi hai consigliato ho visto è tradotto anche italiano, mi chiedevo se la traduzione è ben fatta altrimenti mi accontento anche di quello in lingua originale.

    Io per adesso ho acquistato Programmazione Java Fondamenti di Deitel, pensi vada bene? Del mio libro c'è anche una versione di Tecniche avanzate di programmazione che credo copra la gestione degli errori, input/output e l'interfaccia grafica e altro; in quello che tu mi hai suggerito questi concetti sono affrontati o si ferma ai fondamenti di java?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Pacio88
    Il libro che mi hai consigliato ho visto è tradotto anche italiano, mi chiedevo se la traduzione è ben fatta altrimenti mi accontento anche di quello in lingua originale.
    Io ho la versione inglese che è ottima a livello tecnico ed è anche ben comprensibile (più di altri libri tecnici in inglese che ho).
    La versione italiana non l'ho mai letta ma credo che sia comunque molto molto valida.

    Originariamente inviato da Pacio88
    Io per adesso ho acquistato Programmazione Java Fondamenti di Deitel, pensi vada bene?
    Non lo conosco.

    Originariamente inviato da Pacio88
    in quello che tu mi hai suggerito questi concetti sono affrontati o si ferma ai fondamenti di java?
    Il libro che ho indicato copre principalmente il linguaggio Java (tutto ... dalle cose più semplici a quelle più complicate come generics/collezioni) e le principali parti più importanti del framework. E per la parte del linguaggio non è solo un libro ma è IL libro su Java.
    Comunque non tratta interfacce grafiche, networking o altre cose avanzate.
    E in ogni caso, per certi argomenti come generics, I/O, networking ecc... ci sono altri libri solo per ognuno di questi argomenti!!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2026 vBulletin Solutions, Inc. All rights reserved.