Prova Finale a.a. 2011/2012 Laboratorio 1: Introduzione a Java e Eclipse 1
Java 6 Standard Edition Linguaggio Java (... (javac, Tool di sviluppo Librerie per l'interfaccia grafica Librerie di base Macchina virtuale JDK JRE JRE Macchina virtuale e librerie necessarie per l'esecuzione di programmi Java. JDK JRE + tool a riga di comando (compilatore, debugger,...) necessari per sviluppare programmi in Java Sistema Operativo
Java Virtual Machine Macchina astratta Esegue programmi Java compilati con javac Stesso programma eseguito su diverse piattaforme (con ( diverse machcine virtuali
Sviluppo di un programma Java File.jar = Java Archive ( class. Raggruppano un insieme di file (tipicamente
Javac ( gcc Compilatore a riga di comando (stile Riceve in ingresso: File.java del programma (organizzati in directory ( package rispettando la struttura dei Posizione delle librerie esterne (già compilate e inserite in ( jar. file Produce: I file.class del programma Oppure messaggi di errore
JavaC Sintassi: javac [ options ] [ sourcefiles ] Options: opzioni per il compilatore (es. La posizione di classi da cui ( compilare dipendono quelle da Sourcefiles: i nomi e i percorsi dei file java da compilare
Java virtual Machine Si lancia con il comando java ( class. Esegue una serie di classi (file Sintassi: java [ options ] class [ argument... ] java [ options ] -jar file.jar [ argument... ] Options: opzioni per la virtual machine Argument: parametri per il programma da eseguire
Esecuzione di un programma Creare un file con notepad: Nome: HelloWorld.java class HelloWorldApp { public static void main(string[] args) { //Display "Hello World!" System.out.println("Hello World!"); } }
Esecuzione di un programma Compilare il programma: javac HelloWorld.java Eseguire il programma: java HelloWorld Attenzione: quando si esegue un programma non bisogna inserire l'estensione.class e bisogna rispettare la struttura dei package
Integrated Development Environment Ambiente software utilizzato per lo sviluppo di applicazioni Ambiente interattivo Intuitivo Automatizza operazioni Automatizza gestione dei progetti... Integra anche aspetti esterni alla programmazione: progettazione, testing,...
Integrated Development Environment Tipicamente funge da interfaccia per tool di livello più basso Esempi: ( tutto Eclipse (per ( Java Borland Jbuilder (per ( linux Kdevelop (C / C++ sotto Microsoft Visual Studio
Eclipse Piattaforma estendibile per sviluppo Meccanismo dei plugin Plugin permettono di: Programmare con diversi linguaggi Progettare sistemi software Testare applicazioni... Noi lo useremo per sviluppare in Java
Avviare eclipse
Workspace Ambiente di lavoro Racchiude progetti Mantiene impostazioni Raggruppa viste e funzionalità
Progetti Raccoglie una serie di file correlati e le relative impostazioni Diversi tipi di progetti a seconda della finalità Per noi progetti Java Contengono principalmente sorgenti e file compilati Ogni progetto è contenuto in una sottodirectory all'interno del workspace Può essere spostato o copiato integralmente da un workspace verso un altro
Creare progetto
Workspace - elementi Editor testuali Inserimento, modifica, ecc. Del codice Aiuti allo sviluppatore
Workspace - elementi ( views ) Viste Visualizzazione/ editing di elementi del progetto Gestione packages, Gestione errori,... Personalizzabili
Workspace - elementi ( perspective ) Prospettive Insieme di editor e viste per una specifica funzionalità Prospettiva per lo sviluppo Java Diverse a seconda della fase di sviluppo (testing, debugging, (. ecc
Java perspective Java editor Package explorer Outline Problems Documentazione
Esecuzione di un programma Posso mantenere la configurazione per una specifica esecuzione Salvo che classe eseguire Salvo i parametri da passare in ingresso Salvo che JVM utilizzare Salvo impostazioni della JVM... A noi interessano le Java application
Visualizzare impostazioni di esecuzione
Debugging con Eclipse Si interfaccia con il debugger incluso nel JDK Offre un'interfaccia comoda per il debugging delle applicazioni, permette di: Settare/gestire brakpoint Eseguire il programma passo passo Monitorare il contenuto delle variabili...
Prospettiva di debug Controlli per esecuzione passo/passo Monitor variabili Stack chiamate Editor Output
I/O forma*ato Input Dobbiamo costruire uno scanner collegato allo standard input stream System.in, poi usare i metodi della classe Scanner nextline() legge la prossima riga next() legge la prossima stringa fino a uno spazio nextint() legge il prossimo int nextdouble() legge il prossimo double hasnext() dice se c'è una stringa in input hasnextint(), nextfloat(), nextboolean() Output System.out fornisce anche il buon vecchio printf di C, con le solite convenzioni di formattazione, più print e println
Esempio public static void main(string args[]) { Scanner in = new Scanner(System.in); System.out.println("Come ti chiami?"); String nome = in.nextline(); System.out.println("Quanti anni hai?"); int eta = in.nextint(); System.out.println("Ciao "+nome+" tra un anno avrai " +(eta+1)+" anni"); }
Riferimenti Documentazione API Java: http://docs.oracle.com/javase/6/docs/api/ Documentazione Eclipse: http://help.eclipse.org/indigo/index.jsp