Eclipse and Java for beginners

Vedere video: https://www.youtube.com/watch?v=tRwVX7-DWY4&index=16&list=PLv6UtFrA7VEu4PtzJaGHHSeZBi6mdJtwv Per il momento, le classi create sono state utilizzate solo per fare girare JUnit Test. In questa lezione creeremo un programma standalone che usa le classi per gestire un oggetto di tipo MyLibrary. Dobbiamo creare un metodo speciale "main" in una classe. Il JRE (Java Runtime Engine) carica le classi e poi esegue questo metodo.  Potremmo sfruttare una GUI (Graphical User Interface) per fornire un form da compilare, ma non è negli obiettivi del corso. Invece creeremo un metodo main che simula le operazioni effettuate da un utente e mostra a video i risultati. Per creare un programma Java standalone useremo il wizard Eclipse Export --> otterremo un .jar eseguibile su qualsiasi computer compatibile. Possiamo creare i metodo main in una classe qualsiasi, noi lo mettiamo nella MyLibrary(). Scrivendo main e usando il suggerimento, otteniamo public static void main(String[] args) , un metodo che permette di leggere i parametri come una variabile di tipo String[] di nome args da riga comandi. Nel nostro caso, comunque, non ci sarà nessun input da riga comandi. Iniziamo creando una nuova MyLibrary() e chiamandola "Test Drive Library". Creiamo alcuni libri e settiamo gli autori, creiamo alcune persone e settiamo i nomi. TIP: per scrivere una linea println possiamo prima scrivere la stringa da visualizzare, poi selezionarla e CTRL+SPACE+UP ARROW (nel mio caso TAB + UP ARROW) , Eclipse aggiunge il comando in automatico. Nel nostro caso scriviamo System.out.println("Just created new library"); poi invochiamo un nuovo metodo che fra un po' implementeremo: testLibrary.printStatus(); Scriviamo una stringa per la stampa di "Check out War and Peace to Sue", la corrispondente operazione di checkOut e di nuovo printStatus(). Scriviamo una stringa per la stampa di "Do some stuff", il check in di b1, il check out di b2 a jim e di nuovo printStatus(). Ora usiamo il quick fix per creare il metodo printStatus(), sempre nella classe MyLibrary. In questo metodo mettiamo una prima linea di stampa "Status Report of MyLibrary n" +this.toString(). NOTE: n in una stringa permette di andare a capo, inoltre dentro a println si può omettere il metodo toString(), in questo caso basterebbe scrivere this. Facciamo un ciclo for sui libri per stamparli, e un ciclo sulle persone per vedere quanti libri possono avere in prestito e quanti ne hanno effettivamente. Poi vogliamo i libri disponibili e una stringa finale di fine report (vedi codice). Possiamo far girare la classe MyLibrary come java application, perché la MyLibrary possiede il metodo main. Quindi: Run > Run as > Java Application. Attenzione: come mai non vengono visualizzate coerentemente le informazioni? Perché quando abbiamo creato i libri e le persone ci siamo dimenticati di aggiungerli alla library. Correggiamo invocando i metodi addBook e addPerson (vedi codice). Di nuovo Run > Run as > Java Application --> adesso il report è coerente con le operazioni effettuate. Per il momento abbiamo fatto girare il tutto su Eclipse.  Ora creiamo un programma standalone che possiamo eseguire fuori da Eclipse, su ogni sistema Java compatibile. Selezioniamo File > Export > Java JAR per creare una versione eseguibile. Nella finestra che si propone possiamo selezionare le risorse da esportare. E' per questo che abbiamo salvato i test in una cartella diversa da src, così la possiamo escludere. Dobbiamo dare un nome al programma e scegliere dove salvarlo. Facendo next, si propone la finestra in cui bisogna selezionare (anche tramite il pulsante Browse) quale classe ha il metodo main. Nel nostro caso ce n'è solo una, quindi la selezioniamo e completiamo la creazione. Per far girare questo programma, aprire il terminale, andare nella dir in cui è stato salvato, e dare il comando: java -jar nomeprogramma.jar .

CONGRATULATION!!!

Per approfondimenti, vedere le risorse indicate dal  Tutorial Companion Guide.