15.06.2013 Views

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

Dispensa in PDF - Dipartimento di Scienze Ambientali, Informatica e ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Figura 7.11. B ere<strong>di</strong>ta dalla classe A<br />

Carnielli Efrem: Programmazione a componenti<br />

f<br />

A<br />

g<br />

B<br />

Def<strong>in</strong>izione ed uso <strong>di</strong> classi, oggetti ed <strong>in</strong>terfacce<br />

Pren<strong>di</strong>amo un oggetto p istanza <strong>di</strong> A e o istanza <strong>di</strong> B.<br />

L’oggetto p ha come <strong>in</strong>terfaccia {f} mentre o ha come <strong>in</strong>terfaccia {f,g} perchè la<br />

classe B ere<strong>di</strong>ta da A.<br />

Sia o che p implementano f per cui {f} è sia <strong>in</strong>terfaccia <strong>di</strong> o che <strong>di</strong> p.<br />

Sono <strong>di</strong> più gli oggetti che implementano f e g oppure quelli che implementano<br />

solo f? Per {f,g} ho solo o, per {f} sia o che p.<br />

Sebbene {f} sia contenuto <strong>in</strong> {f,g}, gli oggetti che implementano l’<strong>in</strong>terfaccia {f} sono<br />

maggiori, perchè ci sono meno restrizioni.<br />

Data un’<strong>in</strong>terfaccia I, il tipo ΤI è def<strong>in</strong>ito come:<br />

ΤI è l’<strong>in</strong>sieme degli oggetti che implementano le operazioni <strong>di</strong> I.<br />

TI={ogg|ogg implementa I}<br />

T{f}={ogg|ogg implementa {f}} = {p,o}<br />

T{f,g}={ogg|ogg implementa {f,g}} = {o}<br />

T{f}= TA tipo <strong>di</strong> A<br />

T{f,g}= TB tipo <strong>di</strong> B<br />

Così ho def<strong>in</strong>ito il tipo delle classi.<br />

TA <strong>in</strong>sieme <strong>di</strong> oggetti istanza <strong>di</strong> A.<br />

TB <strong>in</strong>sieme <strong>di</strong> oggetti istanza <strong>di</strong> B.<br />

TA ≥ TB cioè TB è sottotipo <strong>di</strong> TA anche se {f} è contenuto <strong>in</strong> {f,g}.<br />

Più grande è l’<strong>in</strong>sieme <strong>di</strong> funzioni e più grande è il numero <strong>di</strong> requisiti, più piccolo<br />

è l’<strong>in</strong>sieme che li può sod<strong>di</strong>sfare più piccolo è il tipo associato.<br />

175

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!