/* ************************************************************************* * Fino ad ora i nostri programmi sono stati visti come una sequenza di * istruzioni all'interno della funzione main(). * Proviamo a raggruppare le istruzioni in metodi, che svolgano ognuno * un certo compito. Vediamo il formato di un metodo: * * TipoRitorno NomeMetodo(Lista tipo e nome argomenti passati) * { * corpo del metodo * } * * TipoRitorno = dichiara il tipo di valore (int, float, ecc.) che il * metodo restituisce attraverso l'istruzione return. * NomeMetodo = Il nome del metodo, che scegliamo a nostro piacimento, * basta che non sia uguale ad una delle parole chiave. * Lista Argomenti = Una lista di nomi di variabili separate da virgole, * preceduti dal tipo di variabile stesso (int, float...) * Questi sono i parametri in ENTRATA del metodo, * ovvero i dati che gli vengono passati alla chiamata. * * Opzionalmente si puo' aggiungere, prima del TipoRitorno, un modificatore, * che puo' essere public,protected,private,static o altri che vedremo. * * Ecco un esempio: * * int somma(int a,int b) // Funzione che restituisce un valore INT * // ed ha 2 parametri in entrata sempre INT * { * return(a+b); * Restituisci il risultato di a+b * } * * Per chiamare questa funzione dal corpo di main() si fa in questo modo: * * papero = somma(pippo,pluto); * * Da notare che non e' necessario passare al metodo variabili con gli stessi * nomi di quelle usate nel metodo (che in questo caso si chiamano a,b), * basta che siano 2 variabili dello stesso tipo (in questo caso int). * Gia' che ci siamo, possiamo isolare il codice che legge una variabile * da tastiera e farne un metodo LeggiInt(): tale metodo non richiedera' * parametri in entrata (lasceremo le parentesi vuote, non occorre metterci * il void), e restituira' in uscita il valore intero letto. ************************************************************************* */ import java.io.*; // Include le funzioni I/O standard di base. class Jlez2a { // Da qua inizia la classe Jlez2a public static void main(String args[]) // Definiamo il metodo Main. { // Inizio del main() System.out.println("Dammi un numero:"); int pippo = leggiInt(); // Chiamo il metodo "int leggiInt()" System.out.println("Dammi un'altro numero: "); int pluto = leggiInt(); // Chiamo il metodo "int leggiInt()" int papero = somma(pippo,pluto); // Chiamo il metodo "int somma(int,int)" System.out.println("La somma dei due e' " + papero); } // Fine del metodo principale Main() /* ------------------------------------------------------------------------- * Ora definiamo una funzione chiamata somma(), che in entrata richiede 2 * variabili di tipo intero, e in uscita restituisce un'altro numero intero. * int somma(int,int) * ----------------------------------------------------------------------- */ public static int somma(int a,int b) { System.out.println("Sto calcolando la somma... com'e' difficile!!!"); return(a+b); } // Fine di "int somma(int,int)" /* ------------------------------------------------------------------------- * Ora definiamo un metodo chiamato leggiInt(), che in entrata non ha * parametri, e in uscita restituisce un numero intero immesso da tastiera. * int leggiInt() * ----------------------------------------------------------------------- */ public static int leggiInt() { try { DataInputStream leggilo = new DataInputStream(System.in); String stringa = leggilo.readLine(); // dichiaro e leggo stringa. return(Integer.valueOf(stringa).intValue()); // e la converto in int. } catch (Exception e) { System.out.println("Errore: " + e + " nella lettura da tastiera"); System.exit(0); return(-1); // Questo return serve solo perche' il metodo // abbia un int di ritorno anche in caso di errore } } // Fine di "int leggiInt()" } // Fine della classe Jlez2a