![]() |
Università
|
Diploma in Ingegneria Informatica
|
A.A. 2001/2002
Versione 1.00 29/09/2001
Quando si utilizzano i package, ovvero nel caso si suddividano i moduli in raggruppamenti omogenei costituiti da classi correlate, per le quali possa valere la visibilità di tipo package (alternativa alle altre public, protected, private), è necessario collocare i moduli in subdirectory di un directory di partenza, che per comodità chiameremo root. Il sottoalbero di directory da root deve ricalcare la gerarchia di package che vengono definiti nei moduli dell'applicazione. Per esempio, i moduli del package FI2 vanno collocati in root\FI2, quelli del package FI2.Linear in root\FI2\Linear ecc. In questo modo è possibile organizzare le applicazioni in più moduli compilati separatamente ed inoltre una applicazione può far uso delle classi di un determinato package utilizzando l'istruzione import.
Affinché il compilatore ricerchi correttamente i moduli dei package definiti e importati, è necessario che la compilazione avvenga avendo come directory corrente root. Se ad esempio si deve compilare l'esempio ArrayStack.java che si trova nel subdirectory C:\Java\FI2\Linear avendo come directory corrente C:\Java si dà al comando:
(supponendo ovviamente che il path del compilatore sia presente nella variabile PATH del DOS). Se una volta compilato si vuole eseguire l'esempio avendo come parametro il file gen10.txt che si trova nel subdirectory C:\Java\FI2\Util, il comando da dare, sempre avendo come directory corrente C:\Java, è il seguente:
Per chi utilizza l'editor RealJ (v3.51) sono invece stati predisposti i file project, previsti da quel tool, per ciascuna delle varie applicazioni attivabili. Quelle che richiedono un input da stdin possono egualmente essere attivate dall'interno dell'editor ma è necessario farlo con la modalità 'Run with console' e non quella usuale che cattura l'output nella finestra in basso ma non consente l'input (se si tenta di attivare l'applicazione con la modalità usuale, si ottiene un errore chiaramente segnalato). I file project sono stati prodotti avendo come root un determinato directory: possono comunque essere adattati alla propria sistuazione se serve.
A mo' di esempio sono stati anche forniti alcuni file project generati con l'ambiente di editing JCreator: impostando opportunamente i valori dell''output path' e gli altri parametri dei 'JDK Tool', relativi ai singoli progetti, è possibile avviare la compilazione e l'attivazione dell'applicazione, similmente a quanto si può fare con RealJ.
Gli esempi del package FI2.Linear sono i più articolati e sono stati organizzati seguendo l'impianto del testo [Good] con alcuni necessari adattamenti ma cercando di mantenersi il più possibile aderenti a quanto descritto nel testo. Per avere un'idea complessiva dell'organizzazione gerarchica delle classi definite, si faccia riferimento allo schema in [Good] alla pag. 218 fig. 5.11. Si tratta di un ricco esempio di applicazione delle metodologie della programmazione object-oriented e pertanto queste classi e interfacce vanno analizzate con attenzione. Per la corretta sequenza di analisi degli esempi si veda il programma-schema. Un discorso analogo vale per gli alberi per i quali si rimanda allo schema in [Good] alla pag. 248 fig. 6.11