Esercizio di esame 11/4/2002

Canale A-L (Liberatore)/ Parte II

Domanda 1

Dire cosa stampa il seguente programma.

class Prova {
  public static int unMetodo(int x) {
    int y=x+1;

    altroMetodo(x, y);

    return 0;
  }

  public static void altroMetodo(int y, int x) {
    System.out.println(x-y);
  }

  public static void main(String arg[]) {
    System.out.println(unMetodo(12));
  }
}

Domanda 2

Spiegare la differenza fra variabili statiche e di istanza. Illustrare con disegni.

Domanda 3

Il seguente metodo dovrebbe contare il numero delle foglie di un albero.

public static int contaFoglie(Albero a) {
  int numfoglie=0;

  if(a==null)
    return numfoglie;

  if( (a.getDestro()==null)&&(a.getSinistro()==null) ) {
    numfoglie++;
    return numfoglie;
  }

  contaFoglie(a.getSinistro());
  contaFoglie(a.getDestro());

  return numfoglie;
}
Motivare i tre punti.