Paola Magillo, Univestita' di Genova, Corso di Programmazione II per SMID, a.a. 2005-2006.

Laboratorio 02 bis:

CLASSI ASTRATTE E INTERFACCE

  1. Scrivere in Java le classi "Rectangle", "Triangle" e "Circle", cla super-classe astratta "Figure" che le unifica, e la classe "FigureTest" che calcola l'area totale delle figure in un array di figure varie (vedere lezione 5).
    Compilare ed eseguire la classe FigureTest.
  2. Scrivere una variante di FigureTest che calcola, oltre all'area totale, anche separatamente la somma delle aree dei rettangoli, quella dei triangoli e quella dei cerchi contenuti nell'array.
  3. Provare a dichiarare "Figure" come interfaccia invece che come classe astratta, e le classi "Rectangle", "Triangle" e "Circle" non come sotto-classi, ma come classi che implementano l'interfaccia.
    Cambia qualcosa?
  4. Scrivere in Java la classe "lista di oggetti generici", esclusa la funzione "print" (vedere sempre lezione 5), e scrivere un "main" dove si costruisce una lista di figure varie (analogo all'array di figure varie dell'esempio FigureTest).
  5. Scrivere un'interfaccia "Printable" che dichiara come unico metodo la funzione "void print()". Fare si' che le tre classi "Rectangle", "Triangle" e "Circle" implementino "Printable".
  6. Modificare la lista di oggetti generici per farla diventare una lista di oggetti "printable". Aggiungere alla classe lista il metodo di stampa "print" (che al punto 4 avevamo tralasciato), facendo si' che la lista stampi i suoi oggetti utilizzando il loro metodo "print".
  7. Modificare il main scritto al punto 4 facendo si' che stampi la lista di figure varie dopo averla costruita.