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?
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...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?
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
così dovrebbe andare? la classe strumenti è astratta e ci sono 2 classi che essa estende.codice:Strumenti metodo(int c){ for (int i=0;i<v.length;i++){ if(c<v[i].costo()) return v[i]; else return null; } }
non funziona così perkè manca il return. come faccio? devo istanziare un oggetto strumenti?
semplicemente perché il compilatore java si pone nel caso in cui non entri nel ciclo for, in tal caso cosa ritorna?
così è corretto anche se non so questo codice che senso abbiacodice:Strumenti metodo(int c){ for (int i=0;i<v.length;i++){ if(c<v[i].costo()) return v[i]; } return null; }
si ok grazie mille...![]()
Semmai così:
x Valiacodice:Strumenti metodo(int c) { for (int i = 0; i < v.length; i++) { if (c < v[i].costo()) { return v[i]; } } return null; }
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)
figuratiOriginariamente inviato da satifal
x Valia
non avevo visto che avevi già risposto.![]()
![]()
![]()
![]()
E io preferisco questo (con tutti i dubbi del caso sulla correttezza):
O meglio: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; }
Una funzione restituisce un solo valore (per definizione di funzione), quindi al suo interno compare un solo return.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; }
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