Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [Java] chiarimenti firma metodo

    codice:
    public PortaMonete(int... valori){ // int... valori si usa per non inserire valori?
    int numeroMonete = valori.length;
    for (int i = 0; i < numeroMonete; i++) {
    if (i >= 10) {
    System.out.println(
    "Sono state inserite solo le prime 10 monete!");
    break;
    }
    monete[i] = new Moneta(valori[i]); // perchè monete[i] = new Moneta(valori[i]) cosa stà ad indicare grazie

    questa è solo una parte del codice..ma io vorrei capire la funzione di alcune cose.
    Ultima modifica di LeleFT; 17-11-2014 a 14:19 Motivo: Aggiunti i tag CODE

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ho spostato la discussione nel forum Java.
    Inoltre, il codice va inserito all'interno degli appositi tag [CODE] ... [/CODE], per mantenere indentazione e formattazione, così da renderlo più leggibile. Ho corretto anche questo.


    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

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    La dicitura "int... valori" indica che quello è un metodo vararg, ossia che prende un numero imprecisato di parametri. Lo si può richiamare con nessun argomento o con N argomenti separati da virgola. Gli elementi eventualmente passati saranno trattati come un array (di interi, in questo caso).

    In merito all'ultima riga... non avendo alcuna informazione in merito si può solo constatare che c'è un array di oggetti Moneta, chiamato "monete". All'i-esimo elemento di tale array viene assegnato un oggetto Moneta, valorizzato con l'i-esimo parametro passato al metodo.


    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

  4. #4
    perfetto grz...il metodo vararg il libro non lo ha spiegato e quindi ho avuto seri dubbi...
    per l'altra riga confermo che c'è un array di nome monete che ha valore 10. quindi per intenderci per i-esimo sono intesi
    tutti i valori che vanno da 1 a 10? a questo oggetto Moneta quindi è assegnato il valore i-esimo.dico bene?
    cma grazie,sempre disponibilissimo... non sò tuseall'inizio trovavi difficoltà,ma io in alcune cose trovo molte difficoltà...

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da francesco51 Visualizza il messaggio
    il metodo vararg il libro non lo ha spiegato e quindi ho avuto seri dubbi...
    I metodi "varargs" sono stati introdotti solo da Java 5. Magari il tuo libro non arriva a Java 5.

    Quote Originariamente inviata da francesco51 Visualizza il messaggio
    per l'altra riga confermo che c'è un array di nome monete che ha valore 10. quindi per intenderci per i-esimo sono intesi
    tutti i valori che vanno da 1 a 10? a questo oggetto Moneta quindi è assegnato il valore i-esimo.dico bene?
    Innanzitutto quello che hai postato non è un metodo .... è un costruttore (perché non ha tipo di ritorno!).
    Inoltre si vede sì un assegnamento a monete[i] ma .... la istanziazione dell'array dove è??
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    veramente ho preso java8...probabile che ancora me lo dovrà spiegare ;p

    c'è ho inserito solo una parte del codice perchè mi interessava saepre il significato di quelle parti...

  7. #7
    e invece quando io creo un metodo con questa dicitura iniziale?
    public void aggiungi(Moneta moneta) (Moneta è una classe, ma perchè doppio nome ?)

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da francesco51 Visualizza il messaggio
    e invece quando io creo un metodo con questa dicitura iniziale?
    public void aggiungi(Moneta moneta) (Moneta è una classe, ma perchè doppio nome ?)
    Moneta è il tipo, moneta è il nome del parametro .... potrebbe essere "m", "laMoneta" o altro. Non necessariamente deve corrispondere (salvo la convenzione lowerCamelCase) al nome della classe, sebbene questo sia l'approccio tipico.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    scusa se ti disturbo ancora.

    public void stato(){
    System.out.println("Il portamonete contiene:");
    for (Moneta moneta : monete) { // perchè qui vengono utilizzati i due punti?
    if(moneta == null) {
    break;
    }

  10. #10
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Ehm, hai un libro su cui studiare? Perché sono domande su aspetti veramente (ma veramente) base del linguaggio...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.