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

    aiuto a capire il codice per favore

    grazie mille a chi mi aiuta

    codice:
    publicclassPassaggioParametri{
        publicstaticclassAnimale
        {
            publicint anni;
    
    
            publicAnimale(int anni)
            {
                this.anni = anni;
            }
    
    
        }
    
    
        publicstaticvoid passaggioParametri(int value)
        {
            value =50;
        }
    
    
        publicstaticvoid passaggioParametri(Animale animale)
        {
            animale.anni =50;
        }
    
    
        publicstaticvoid main(String[] args)
        {
            int anni =10;
            System.out.println("MAIN ANNI VALE "+ anni);
            // PASSAGGIO PER VALORE
            passaggioParametri(anni);
            System.out.println("MAIN DOPO PASSAGGIO PER VALORE ANNI VALE "+ anni);
    
    
            PassaggioParametri.Animale animale =newPassaggioParametri.Animale(anni);
            // PASSAGGIO PER REFERENZA
            System.out.println("MAIN ANIMALE.ANNI VALE "+ animale.anni);
            passaggioParametri(animale);
            System.out.println("MAIN DOPO PASSAGGIO PER REFERENCE ANIMALE.ANNI VALE "+ animale.anni);
        }
    }
    1) cosa vuol dire "this"?
    …forse per dire che questo oggetto ha come valore( dell' attributo in questione) quello del parametro portato dal metodo?

    2) qual' è il significato della riga:
    codice:
    PassaggioParametri.Animale animale =newPassaggioParametri.Animale(anni);
    ?

  2. #2
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    La seconda riga dichiara e inizializza un oggetto di tipo Animale, che a sua volta fa parte come classe static della classe PassaggioParametri. Praticamente è la solita struttura

    codice:
    NomeClasse animale = new NomeClasse(parametri);

    Per quanto riguarda la prima domanda, l'utilizzo del this serve per riferirsi all'oggetto corrente. Trovi tutte le spiegazioni qui.

  3. #3
    grazie minomic

    ho capito la creazione dell' oggetto con il new..
    ..il this indica che l' attributo anni vale quanto il parametro formale anni(e quanto vale questo parametro??)


    il primo "anni" vale 10.
    il secondo vale 10 anch' esso.(ma allora mi chiedo: perché usiamo il metodo passaggioParametri(int value) per modificare gli anni (cioè per portarli a 50), se subito dopo anni torna a valere 10??


    quando si inizializza l' oggetto (new passaggioParametri.Animale(anni) ), si intende lo stesso oggetto che avevamo inizializzato col costruttore Animale ?

    grazie mille
    Ultima modifica di Filippo11; 24-01-2015 a 13:40

  4. #4
    nella riga
    codice:
    System.out.println("MAIN ANIMALE.ANNI VALE "+ animale.anni);
    cos' è animale.anni?

    vuol dire attributo anni della classe animale?

    grazie!

  5. #5
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Quote Originariamente inviata da Filippo11 Visualizza il messaggio
    nella riga
    codice:
    System.out.println("MAIN ANIMALE.ANNI VALE "+ animale.anni);
    cos' è animale.anni?

    vuol dire attributo anni della classe animale?
    animale è un oggetto della classe Animale, a sua volta definita dentro alla classe PassaggioParametri. anni invece è un attributo dell'oggetto. Attenzione alla differenza: è un attributo di quella specifica istanza (che si chiama "animale") e non della classe. Quindi due oggetti diversi potrebbero benissimo avere due valori diversi per l'attributo "anni".

  6. #6
    grazie minomic! sto vagamente iniziando ad imparare
    Ultima modifica di Filippo11; 24-01-2015 a 18:04

  7. #7
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Quote Originariamente inviata da Filippo11 Visualizza il messaggio
    grazie minomic! sto iniziando ad imparare
    Bene!

  8. #8
    un altro dubbio:
    a cosa serve chiamare il metodo passaggioParametri(anni), se gli anni continuano a valere 10 anche dopo la chiamata?

    codice:
    publicstaticvoid main(String[] args){
            int anni =10;
            System.out.println("MAIN ANNI VALE "+ anni);
            // PASSAGGIO PER VALORE
            passaggioParametri(anni);
    System.out.println("MAIN DOPO PASSAGGIO PER VALORE ANNI VALE "+ anni);

    grazie!!

  9. #9
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Alcune volte si passa un parametro affinché il metodo lo modifichi. Altre volte, come in questo caso, si passa il parametro affinché il metodo lo utilizzi, ma senza modificarlo.

  10. #10
    ah ok, grazie minomic, (e..a cosa serve, al fine dell' utilità dell' intero programma, far si che un metodo utilizzi un parametro senza modifcarlo ?)

    grazie!!!

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.