Ingegneria del Software – Esercitazione 2

Prima parte

Definire una gerarchia di forme geometriche costituita dalle seguenti classi:

 

FormaGeometrica {abstract}

 

+ CalcolaArea() : double {abstract}

+ ToString() : string

 

 

PoligonoRegolare {abstract}

...

...

+ PoligonoRegolare(numLati : int, lunLato : double)

+ CalcolaPerimetro() : double

+ ToString() : string

 

 

Quadrato

 

+ Quadrato(lunLato : double)

+ CalcolaArea() : double

+ ToString() : string

TriangoloEquilatero

 

+ TriangoloEquilatero(lunLato : double)

+ CalcolaArea() : double

+ ToString() : string

 

 

facendo in modo che ogni classe fornisca una descrizione dettagliata della propria classe base (ad eccezione di FormaGeometrica) e di se stessa (nessuna eccezione) attraverso il metodo ToString(). I metodi CalcolaPerimetro()  e  CalcolaArea() restituiscono invece un risultato numerico coerente con il loro stesso nome e con la classe in cui sono definiti.

 

 

Seconda parte

Implementare una ulteriore classe chiamata EseguiTest e contenente il metodo statico Main(), realizzando un programma eseguibile in grado di verificare le funzionalità definite nella suddetta gerarchia di classi e di sfruttare il polimorfismo, con particolare riferimento ai metodi ToString() e CalcolaArea().

 

 

Finalità dell’esercizio

Ereditarietà

Classi e metodi astratti

Overriding

Polimorfismo


 

 

Soluzione