Paola Magillo, Univestita' di Genova, Corso di Programmazione II per SMID, a.a. 2007-2008.

Laboratorio 02 bis:

CLASSI ASTRATTE E INTERFACCE

  1. Considerare le classi "Rectangle", "Triangle" e "Circle", e la 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).
    NOTA: rispetto alla classe "Rectangle" con cui avete lavorato finora, qui le due dimensioni non sono piu' interi ma double.
    Compilare ed eseguire la classe FigureTest.
  2. Scrivere una variante di FigureTest che calcola separatamente la somma delle aree dei rettangoli, quella dei triangoli e quella dei cerchi contenuti nell'array.
  3. 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 (vedere lezione 5).
    Cambia qualcosa?
  4. 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".
  5. Modificare la lista di oggetti generici (vedere lezione 5) per farla diventare una lista di oggetti "Printable". Aggiungere alla classe lista il metodo di stampa "print", facendo si' che la lista stampi i suoi oggetti utilizzando il loro metodo "print".
  6. Scrivere un main che crea una lista di oggetti "Printable" la riempie con triangoli, rettangoli e cerchi, e poi la stampa.