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