Domanda banale sui metodi

di il
9 risposte

Domanda banale sui metodi

Sono un neofita, quindi vi chiedo perdono in anticipo...

Non solo per Java, ma anche in altri linguacci C-like:

Perché un metodo che mi stampa "Ciao" deve avere come tipo di ritorno "void"? Ora, comprendo che "ciao" non è certo un valore numerico, ma non è una stringa? La stessa domanda me la pongo anche per altri metodi che non mi restituiscono un intero o un double, ecc. Sicuramente non mi è ben chiaro il concetto di valore di ritorno di un metodo...

9 Risposte

  • Re: Domanda banale sui metodi

    Il tipo di ritorno void dice semplicenente: attento, guarda che questo metodo non ti ritorna nulla.

    Perche' si usa un valore di ritorno?
    Mi sembra ovvio: per poter utilizzare tale valore da qualche altra parte: stamparlo su schermo e' troppo limitativo.

    Perche' serve dichiarare il tipo dei parametri ed il tipo del valore di ritorno? Per aiutare il programmatore a evitare errori: il compilatore, conoscendo il tipo di parametri ed il tipo del valore di ritorno, puo' controllare se sta utilizzando il metodo in modo consistente, cioe' che ha senso.

    Per fare un banale esempio:

    "12" + 3

    e' la stringa "123" oppure il numero 15?

    Di sicuro

    "12" + "3"

    e' ragionevole che sia la stringa "123", mentre

    12 + 3

    e' ragionevole che sia il numero 15.

    Un buon linguaggio di programmazione ti avvertirebbe che ' "12" + 3 ' e' un'espressione ambigua, e potrebbe essere un errore.

    Il concetto di valore di ritorno ti dovrebbe essere ben chiaro se hai fatto almeno le medie (ma anche le elementari): le funzioni trigonometriche, le 4 operazioni, ecc ... accettano un certo numero di parametri e ritornano un risultato.

    y = sin(x)
    y = a x^2 + b x + c
    ...


    Stessa robbbbba!


    Certo che avere dubbi di questo tipo per uno che si accinge ad imparare a programmare ....
    La vedo mooooooooooo..oooolto dura
  • Re: Domanda banale sui metodi

    Il tipo di ritorno void dice semplicenente: attento, guarda che questo metodo non ti ritorna nulla.
    Quindi se scrivo un metodo che mi stampa "ciao", non mi ritorna una stringa? Il valore di ritorno è tale se e solo se è un valore in senso stretto, cioè numerico?
  • Re: Domanda banale sui metodi

    E' una tua scelta se il metodo deve o meno ritornare qualcosa.
    Dipende se prevedi di usare questo qualcosa da qualche altra parte

    E il valore di ritorno puo' essere qualunque cosa: un numero, una stringa, un vettore, una classe, o qualunque cosa ti venga in mente, o anche nulla
  • Re: Domanda banale sui metodi

    C'è un equivoco sul concetto di "valore di ritorno".

    Con valore di ritorno si intende un valore restituito dal codice della funzione al codice che l'ha chiamata (da codice a codice). Non c'entrano nulla i dati che possono essere (o non essere) inviati al video o alla stampante oppure ottenuti dalla tastiera.
  • Re: Domanda banale sui metodi

    Uhm. Ora credo di avere capito, grazie per le spiegazioni..... allo stesso tempo ritengo che molte fonti e testi creino un po' di confusione su questo argomento, confondendo appunto i dati restituiti a video o a stampa con il valore di ritorno del metodo.

    Grazie ancora.
  • Re: Domanda banale sui metodi

    Beh ... sicuramente sarebbero testi da buttare, ma non ho mai visto testi che fanno una confusione di questo tipo. E' anche probabile che tu abbia capito male ...
  • Re: Domanda banale sui metodi

    Forse il problema e' restituito a video, ed in particolare l'uso di restituito in questo contesto: ma e' abbastanza ovvio che il termine e' inteso in senso collocquiale, un'alternativa a stampato a video, non in senso formale.
  • Re: Domanda banale sui metodi

    oregon ha scritto:


    Beh ... sicuramente sarebbero testi da buttare, ma non ho mai visto testi che fanno una confusione di questo tipo. E' anche probabile che tu abbia capito male ...
    Sicuramente ho capito male io... forse perché, ragionando al contrario, nei testi non viene a mio avviso sufficientemente chiarita o ribadita la differenza tra valore restituito da un metodo e quanto viene stampato a video, che mi avete spiegato.
  • Re: Domanda banale sui metodi

    Il problema fondamentale e` che stai usando un testo italiano

    in inglese non avresti avuto questa ambiguita`
Devi accedere o registrarti per scrivere nel forum
9 risposte