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);
?