Ingegneria del Software – Esercitazione 1

Prima parte

Definire una classe Quadrato in base alla descrizione fornita dal seguente diagramma UML e dal testo successivo:

 

Quadrato

 

+ NUMERO_LATI : int = 4 {readonly}

- _numeroIstanze : int

- _lunghezzaLato : double

 

 

«property» + NumeroIstanze : int {query}

+ Quadrato()

+ Quadrato(lunghezzaLato : double)

«property» + LunghezzaLato : double

+ CalcolaPerimetro() : double

+ CalcolaArea() : double

 

 

Notare che i due membri NumeroIstanze e LunghezzaLato, contraddistinti dalla lettere iniziale maiuscola e dallo stereotipo «property», sono proprietà C#, ovvero membri composti dal metodo get o set o da una coppia get/set (lettura/scrittura).

·         In particolare, NumeroIstanze permette d leggere il numero di istanze della classe Quadrato che sono state create dal momento dell'avvio del programma. Tale informazione è memorizzata nel membro statico, ma non costante, _numeroIstanze.

·         Il membro LunghezzaLato, invece, permette non soltanto di leggere la lunghezza del lato del quadrato, ma anche di modificarla direttamente. Eventuali lunghezze negative in scrittura vengono interpretate come positive, ovvero viene considerato il valore assoluto della lunghezza. L'informazione relativa alla lunghezza del lato è memorizzata nel membro di istanza _lunghezzaLato.

 

Il costruttore di default Quadrato() crea una istanza avente lato di lunghezza unitaria.

Il costruttore ad un argomento Quadrato(lunghezzaLato : double) crea invece una istanza avente lato di lunghezza pari al valore assoluto dell'argomento lunghezzaLato.

 

 

Seconda parte

Implementare una differente classe chiamata EseguiTest e contenente il metodo statico Main(), realizzando un programma eseguibile in grado di verificare le funzionalità definite nella classe Quadrato.

 

 

Finalità dell’esercizio

Interpretazione diagramma delle classi

Definizione di classe

Uso delle proprietà

Uso dei costruttori


 

 

Soluzione