JAVADOC in Eclipse
Generazione JAVADOC:
¾
Selezionare nel menu
Project
la
voce
”Generate Javadoc ”
Telematica II
8. Esercitazione/Laboratorio 2
Corso di Laurea in Ingegneria Informatica
A.A. 2009-2010
2° Semestre
Prof. Giovanni Pascoschi
2
JAVADOC in Eclipse
¾
3
Generazione JAVADOC:
¾ E’
possibile
selezionare
altre
opzioni (tags, ecc)
è necessario la prima
volta
selezionare
il
comando JAVADOC con il
relativo percorso
Si possono selezionare i
progetti JAVA su cui
lavorare.
E’
possibile
selezionare anche altre
proprietà,
come
per
esempio le classi per le
quali
generare
la
documentazione
(public/private etc.)
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
JAVADOC in Eclipse
Generazione JAVADOC:
¾
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
4
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
JAVADOC in Eclipse
Debugging in Eclipse
Generazione JAVADOC:
¾
Utilizzo del debugger:
¾ Avvio del debugger
¾ Settaggio breakpoints
¾ Esecuzione step-by-step del codice
¾ Ispezione di variabili ed espressioni
Selezionando “Finish” partirà la generazione del JAVADOC.
Avendo selezionato di aprire il file “index” nel browser
(piuttosto che la generazione del JAVADOC), verrà aperto il
relativo file index.html del JAVADOC nel Web Browser di
default. Nella finestra “console” è possibile vedere l’evoluzione
della generazione del JAVADOC
Hot code replace
5
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
6
Eclipse – debug perspective
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
Eclipse – avvio del debugger
per debuggare il codice,
è necessario farlo girare
nella modalità debug.
¾ non è necessario
cambiare il codice o
ricompilarlo
cliccare con il tasto
destro sul file JAVA, quindi
selezionare Debug As Æ
Java Application (invece di
Run AsÆJava Application).
selezionando perspectiveÆdebug si apriranno le view che permettono di
debuggare il programma
7
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
8
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
Eclipse - finestre del debugger
Debug in Eclipse - configurazione
e’ possibile fermare il
debugger al metodo
main( ).
per
fare
questo,
bisogna creare una
configurazione
di
debug,
in
maniera
simile
alla
configurazione di run
Variabili,
breakpoints,
espressioni
Stack delle
esecuzioni
Sorgente
Console
9
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
10
Debug in Eclipse - breakpoints
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
Debug in Eclipse - breakpoints
la maniera piu’ semplice per
settare un breakpoint è quello di
porlo su una determinata linea
per crearlo fare doppio
click sul margine sinistro
di una riga di codice
per
eliminarlo
fare
doppio click sull’icona
relativa
un breakpoint su un metodo
ferma
l’esecuzione
del
programma quando il debugger
entra o esce un metodo
prestabilito
si puo’ settare un breakpoint
di eccezione su un particolare
tipo di eccezione (menu)
11
Telematica II – A.A. 2009-2010
un breakpoint di espressione si
ferma quando una condizione
diviene vera o cambia
¾ un’espressione
puo’
essere non solo una
semplice variabile
si puo’ settare un breakpoint
HIT Count, facendo in maniera
tale di fermare l’esecuzione dopo
che il breakpoint è stato
raggiunto un certo numero di
volte
a cura di Pascoschi Giovanni
12
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
Debug in Eclipse - comandi
Debug in Eclipse – vista dello stack
1. Resume – Continua l’esecuzione finchè il breakpoint o il processo
(thread) termina
2. Suspend – Interrompe (pausa) un thread in esecuzione
3. Terminate – Termina l’esecuzione del thread selezionato
4. Disconnect – Disconnette da una sessione di debug remota
5. Remove terminated launches – Chiude tutte le sessioni di debug
terminate
6. Step Into – Entra in un metodo ed esegue la sua prima linea di codice
7. Step Over – Esegue la prossima linea di codice nel metodo corrente
8. Step Return – Continua l’esecuzione fino al termine del metodo corrente
(return)
9. Drop to Frame – Ritorna alla voce dello stack precedente
10.Step with Filters – Continua l’esecuzione fino alla prossima linea di
codice che non è filtrata
1 2 3 4
13
5
6
7 8
Telematica II – A.A. 2009-2010
9
allorquando un thread invoca un metodo, la relativa chiamata
è aggiunta allo stack
il pulsante Drop to Frame permette di andare indietro al punto
nel quale il thread ha invocato un particolare metodo:
¾ i valori delle variabili non ritornano al loro stato
precedente
10
a cura di Pascoschi Giovanni
14
Debug in Eclipse – variabili/espressioni
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
Debug in Eclipse – Debug History
il debugger la una vista delle
variabili che permette di mostrare
tutte le variabili correntemente
utilizzate.
¾ è possibile cambiare i
valori di quelle variabili che
si desiderano
esiste anche una vista delle
espressioni
che
permette
di
valutare espressioni
¾ le espressioni tipicamente
coinvolgono
alcune
variabili
utilizzate,
ma
potrebbero
essere
configurate con qualsiasi
tipo di espressione in
JAVA.
15
Telematica II – A.A. 2009-2010
una volta fatto partire un debug, un riferimento compare
nel menu Run. Cliccando il nome del programma nel menu
Debug History, lo si fa partire nuovamente (analogamente al
tasto F11 per l’ultimo)
a cura di Pascoschi Giovanni
16
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
Debug in Eclipse – caratteristiche avanzate
Debug in Eclipse – Hot Code replace
il debugger puo’ essere upgradato per funzionare anche in C/C++
una funzionalità molto caratteristica del debugger JAVA è la possibilità
di sostituire il codice che si sta correntemente eseguendo nel debugger
¾ non è necessario far ripartire il debugger o ricreare lo stato del
programma al momento del cambio del codice
Eclipse è dotato anche di una funzionalità di debug remoto molto
potente
¾ il debugger è residente su una macchina, il codice da
debuggare è residente su un’altra macchina.
¾ riferirsi a eclipse.org/eclipse/faq/eclipse-faq.html #users_18
per maggiori dettagli sul settaggio del debugging remoto.
ci sono alcune limitazioni nell’utilizzo di questa funzionalità
¾ la JVM deve supportare la funzionalità “hot code replace” (JVMs
1.4.x o superiore)
¾ non si possono cambiare le firme di una classe (per esempio
inserire/eliminare un nuovo metodo di una classe)
¾ non si puo’ normalmente modificare il metodo main( )
questa funzionalità è possibile in conseguenza del fatto che la JVM
interpreta il codice .class
17
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
18
Dimostrazione pratica Eclipse
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
Gestione dei file in JAVA – file strutturati #1
apertura file in scrittura
FileOutputStream f = new FileOutputStream(“elenco.dat”);
ObjectOutputStream fOUT = new ObjectOutputStream(f);
Vengono illustrati i vari passi per creare il JAVADOC in Eclipse
le operazioni non vengono fatte direttamente sul primo stream
(creando o sovrapponendo il file “elenco.dat”), ma sul secondo
stream, avendo la seconda classe ObjectOutputStream i metodi
per la scrittura
Vengono illustrati i vari passi per debuggare progetti con Eclipse
per accodare su un file esistente si usa
FileOutputStream f = new FileOutputStream(“elenco.dat”, true);
19
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
20
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
Gestione dei file in JAVA – file strutturati #2
Gestione dei file in JAVA – file strutturati #3
chiusura di un file
f.close( );
apertura file in lettura
FileInputStream f = new FileInputStream(“elenco.dat”);
ObjectInputStream fIN = new ObjectInputStream(f);
le operazioni di I/O su file possono creare eccezioni da catturare
con un opportuno try .... catch
le operazioni non vengono fatte direttamente sul primo stream, ma
sul secondo stream, avendo la seconda classe ObjectInputStream
i metodi per la lettura
try
{
// istruzione di I/O
}
catch
{
System.out.println(“eccezione: “+e.getMessage( ));
}
21
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
22
a cura di Pascoschi Giovanni
Gestione dei file in JAVA – file strutturati #4
Gestione dei file in JAVA – file strutturati #5
scrittura
fOUT.writeInt(12345);
fOUT.writeDouble(123.45);
fOUT.writeObject(o);
lettura
i = fIN.readInt( );
d = fIN.readDouble( );
a = (persona)fIN.readObject();
// scrittura su file di un intero
// scrittura su file di un double
// scrittura su file di un oggetto o
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
// lettura di un int
// lettura di un double
// lettura di un oggetto di classe persona
se non si conosce quanti sono i record, si puo utilizzare un ciclo
infinito con una eccezione di tipo EOFException
prima di chiudere il file è necessario fare un fOUT.flush( ) per
forzare la scrittura su disco
23
Telematica II – A.A. 2009-2010
24
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
Gestione dei file in JAVA – file di testo #1
Gestione dei file in JAVA – file di testo #2
apertura file in scrittura
FileWriter f = new FileWriter(“elenco.txt”);
PrintWriter fOUT = new PrintWriter(f);
apertura file in lettura
FileReader f = new FileReader(“elenco.txt”);
BufferedReader fIN = new BufferedReader(f);
le operazioni non vengono fatte direttamente sul primo stream
(creando o sovrapponendo il file “elenco.txt”), ma sul secondo
stream, avendo la seconda classe PrintWriter i metodi per la
scrittura
le operazioni non vengono fatte direttamente sul primo stream, ma
sul secondo stream, avendo la seconda classe BufferedReader i
metodi per la lettura
per accodare su un file esistente si usa
FileWriter f = new FileWriter(“elenco.txt”, true);
25
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
26
Gestione dei file in JAVA – file di testo #3
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
Gestione dei file in JAVA – file di testo #4
chiusura di un file
f.close( );
scrittura
fOUT.println(“prova”);
fOUT.print(“prova”);
// scrittura su file di testo con \n
// scrittura su file di testo senza \n
le operazioni di I/O su file possono creare eccezioni da catturare
con un opportuno try .... catch
try
{
// istruzione di I/O
}
catch
{
System.out.println(“eccezione: “+e.getMessage( ));
}
27
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
28
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
Gestione dei file in JAVA – file di testo #5
lettura
String s = fIN.readline( );
char c = (char) fIN.read( );
Esercitazione 1 – Gestione dei file / eccezioni
// lettura di una stringa
// lettura di un carattere
Viene illustrato un esercizio sulla gestione dei file e delle
eccezioni (esercizio 3FS)
29
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
30
Esercitazione 2 – Gerarchia di ADT con polimorfismo
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
a cura di Pascoschi Giovanni
Analisi esercizi lezioni precedenti
Viene illustrato l’esercizio n.4 assegnato nelle scorse lezioni
con la relativa soluzione in Eclipse
Viene illustrato un esercizio sulla gerarchia di ADT con
polimorfismo (esercizio 4FS)
31
Telematica II – A.A. 2009-2010
32
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
Riepilogo della lezione
Fine della lezione
Esercitazione/Laboratorio 2
JAVADOC in Eclipse
Debug in Eclipse
Gestione file in JAVA
Esercitazione sulla gestione I/O su file
Esercitazione su Ereditarietà/Polimorfismo
Analisi esercizio assegnato n. 4
33
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
Esercizio n.8
Un’azienda intende gestire l’archivio dei dipendenti. Ogni soggetto è
individuato con codice, cognome e nome, funzione esercitata (dirigente,
quadro, impiegato, operaio), tipo di retribuzione percepita (mensile o oraria),
importo della retribuzione (mensile o oraria), numero di mesi o di ore lavorate
nell’anno.
Il programma di gestione deve permettere di realizzare le seguenti operazioni
(attivate dall’operatore mediante un menu’):
1. Inserimento di tutti i record
2. Modifica di un record
3. Cancellazione di un record
4. Ricerca di tutti i dati relativi a un dipendente, noto il codice
5. Visualizzazione di tutti i dipendenti che hanno le retribuzioni superiori a un
determinato importo indicato dall’operatore
6. Visualizzazione di tutti i dipendenti classificati per funzione con la
rispettiva retribuzione e la relativa percentuale rispetto al totale dei
dipendenti
7. Visualizzazione delle informazioni relative al dipendente che ha la
retribuzione annuale piu’ grande.
35
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni
Domande?
34
Telematica II – A.A. 2009-2010
a cura di Pascoschi Giovanni