Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    20

    [JAVA] Calcolo dell'output di questo codice

    Devo calcolare i 4 output che si ottengono da tale codice, (non riesco a calcolarne 2):

    codice:
    public class Alfa extends Frazione {
    private static int c = 2;
    public Alfa(int x, int y) {
    super(x, y);
    c++;
    }
    public Alfa(int x) {
    this(x - c, x + c);
    }
    public int X() {
    return getDenominatore() - getNumeratore();
    }
    public static int getStatico() {
    return c;
    }
    }
    
    
    
    class Prova {
    public static void main(String[] args) {
    System.out.println(Alfa.getStatico()); //1
    Alfa a = new Alfa(2, 5);
    System.out.println(a.X()); //2
    a = new Alfa(3); 
    System.out.println(a.X()); //3
    System.out.println(Alfa.getStatico()); //4
    }
    }
    Io sono riuscito a calcolare //1 che mi da 2
    //2 che mi risulta essere 3
    //3 non lo capisco. Quel this a cosa si riferisce? Il testo mi dice che si dovrebbe riferire all'oggetto che esegue il metodo, ma qui nel codice prova viene creato l'oggetto...
    Immagino sia un richiamo per il primo costruttore?
    //4 non lo posso calcolare dato che non conosco il risultato del 3//


    Mi spiegate come devo interpretare i comandi segnati in rosso?

  2. #2
    Hai immaginato bene, quando il costruttore di Alfa fa this(x-c, x+c), vuol dire che sta chiamando l'altro costruttore con due argomenti.
    Per dirla alla buona se tu fai
    codice:
    new Alfa(3)
    è come se tu stessi facendo
    codice:
    new Alfa(3-c, 3+c)

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    20
    ok, xò come risultato mi viene 6, ed invece a quanto vedo dovrebbe venire 1....
    provi ad illustrarmi i calcoli del punto //3 in modo tale da capire meglio?

  4. #4
    quando chiami per la prima volta new Alfa(2,5), c diventa 3.

    quando chiami new Alfa(3) stai quindi in realtà chiamando new Alfa(0, 6) quindi se x è il numeratore e y il denominatore, il risultato 6 è giusto..

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    20
    --___--
    sul testo d'esame c'è scritto 1...
    e poi con l'ultima chiamata c diventa 4 e questo è giusto no?

  6. #6
    si c alla fine diventa 4 perchè il costruttore Alfa(x,y) lo chiami in tutto due volte...

    beh, penso che sul testo del tuo esame ci sia un errore, ma hai provato ad eseguirlo?

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    20
    no xchè su questo pc non ho java x provarlo
    cmq ti ringrazio!
    domani e dopodomani farò altri esercizi x prepararmi all'esame, posso contare sul tuo aiuto se ho bisogno di qualcosa?

  8. #8
    se posti qua penso ci passo... e cmq se non ci passo io c'è altra gente in gamba che ti aiuterà :P

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.