Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    metodo che restituisce un riferimento

    ho una domanda ragazzi...
    praticamente devo creare un metodo che restituisca un riferimento a un oggetto, quindi di che tipo deve essere il valore restituito dal metodo?

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: metodo che restituisce un riferimento

    Originariamente inviato da tafazzi87
    ho una domanda ragazzi...
    praticamente devo creare un metodo che restituisca un riferimento a un oggetto, quindi di che tipo deve essere il valore restituito dal metodo?
    Del tipo dell'oggetto di cui vuoi restituire il riferimento magari...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    codice:
    Strumenti metodo(int c){
            for (int i=0;i<v.length;i++){
                if(c<v[i].costo())
                    return v[i];
                else 
                    return null;
            }
        }
    così dovrebbe andare? la classe strumenti è astratta e ci sono 2 classi che essa estende.
    non funziona così perkè manca il return. come faccio? devo istanziare un oggetto strumenti?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    semplicemente perché il compilatore java si pone nel caso in cui non entri nel ciclo for, in tal caso cosa ritorna?
    codice:
    Strumenti metodo(int c){
            for (int i=0;i<v.length;i++){
                if(c<v[i].costo())
                    return v[i];
          
            }
              return null;
        }
    così è corretto anche se non so questo codice che senso abbia

  5. #5
    si ok grazie mille...

  6. #6
    Semmai così:

    codice:
    Strumenti metodo(int c) {
            for (int i = 0; i < v.length; i++) {
                if (c < v[i].costo()) {
                    return v[i];
                }
            }
            return null;
    }
    x Valia
    non avevo visto che avevi già risposto.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da satifal
    x Valia
    non avevo visto che avevi già risposto.
    figurati

  8. #8
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    E io preferisco questo (con tutti i dubbi del caso sulla correttezza):
    codice:
    Strumenti metodo(int c) {
            Strumenti ret = null;
            for (int i = 0; i < v.length; i++) {
                if (c < v[i].costo()) {
                    ret = v[i];
                    break;
                }
            }
            return ret;
    }
    O meglio:

    codice:
    Strumenti metodo(int c) {
            Strumenti ret = null;
            boolean trovato = false;
            int i = 0;
            while (!trovato && (i < v.length)) {
                if (c < v[i].costo()) {
                    ret = v[i];
                    trovato = true;
                }
                i++;
            }
            return ret;
    }
    Una funzione restituisce un solo valore (per definizione di funzione), quindi al suo interno compare un solo return.

    Quando vi è un solo punto in cui restituire il risultato, il codice risulta più facile da manutenere.

    Poi, i gusti son gusti...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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