Codice Java per verifica binding e dispatching

54 views
Skip to first unread message

armano

unread,
May 17, 2020, 11:50:07 AM5/17/20
to Linguaggi di Programmazione Orientati agli Oggetti (LPO) - UNICA
In allegato il codice di test Java relativo alle modalità con cui il linguaggio effettua il dispatching.

Il setting del problema è il seguente:

- classe B + classe D che estende B
- classe T + classe W che estende T

B e D hanno un metodo foo con un parametro che può essere di tipo T o W --a seconda dello specifico file di test.

Occorre verificare che Java usi l'overriding e l'overloading così come ci si aspetta.

I risultati dei vari test servono quindi come verifica.

Per migliorare la comprensione del codice sorgente è stata adottata la seguente convenzione:

bb indica una variabile di classe B che referenzia un oggetto della stessa classe;
bd indica una variabile di classe B che referenzia un oggetto di classe D;
dd indica una variabile di classe D che referenzia un oggetto della stessa classe.

Come sapete, non ci possono essere variabili db ...

Stesso discorso per T e W.

Allego anche un file calc (libreoffice), e suggerisco di usarlo cosi:

1. provare ad prevedere quale metodo sarà attivato (e con quale meccanismo tra overriding e overloading) scrivendolo sul file calc (o a penna su una stampa del pdf corrispondente);

2. verificare poi se l'annotazione fatta corrisponde all'esito prodotto dal programma.

Il main è dentro il file TestAll.java. Per eventuali prove singole c'è anche un file TestOne.java ...

Il docente.

PS Dato che i vari file differiscono solo per pochi dettagli, sono stati otttenuti per copia-e-incolla. Chiedo la cortesia di segnalarmi via email eventuali "typo" dovuti proprio al copia-e-incolla.

InheritanceTester.java
TestAll.java
TestOne.java
dispatching Java.ods
dispatching Java.pdf
InheritanceTester1.java
InheritanceTester2.java
InheritanceTester3.java
InheritanceTester4.java
InheritanceTester5.java
InheritanceTester6.java
InheritanceTester7.java
InheritanceTester8.java
Reply all
Reply to author
Forward
0 new messages