Prova Finale a.a. 2011/2012 - Politecnico di...

27
1 Prova Finale a.a. 2011/2012 Laboratorio 1: Introduzione a Java e Eclipse

Transcript of Prova Finale a.a. 2011/2012 - Politecnico di...

Page 1: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

1

Prova Finale a.a. 2011/2012

Laboratorio 1: Introduzione a Java e Eclipse

Page 2: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Java 6 Standard Edition

Sistema Operativo

Macchina virtuale

Librerie di base

Librerie per l'interfaccia grafica

Tool di sviluppo (javac, ....)‏

Linguaggio Java

JDK

JR

E

•  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

Page 3: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Java Virtual Machine

•  Macchina astratta –  Esegue programmi Java compilati con javac –  Stesso programma eseguito su diverse piattaforme (con

machcine virtuali diverse)‏

Page 4: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Sviluppo di un programma Java

•  File .jar = Java Archive –  Raggruppano un insieme di file (tipicamente .class)‏

Page 5: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Javac •  Compilatore a riga di comando (stile gcc)‏ •  Riceve in ingresso:

–  File .java del programma (organizzati in directory rispettando la struttura dei package)‏

–  Posizione delle librerie esterne (già compilate e inserite in file .jar)‏

•  Produce: –  I file .class del programma –  Oppure messaggi di errore

Page 6: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

JavaC

•  Sintassi: –  javac [ options ] [ sourcefiles ] –  Options: opzioni per il compilatore (es. La posizione di classi da cui dipendono quelle da compilare)‏

–  Sourcefiles: i nomi e i percorsi dei file java da compilare

Page 7: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Java virtual Machine

•  Si lancia con il comando java •  Esegue una serie di classi (file .class)‏ •  Sintassi:

–  java [ options ] class [ argument ... ] –  java [ options ] -jar file.jar [ argument ... ] –  Options: opzioni per la virtual machine –  Argument: parametri per il programma da eseguire

Page 8: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

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!"); } }

Page 9: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

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

Page 10: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

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, ...

Page 11: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Integrated Development Environment

•  Tipicamente funge da interfaccia per tool di livello più basso

•  Esempi: –  Eclipse (per tutto)‏ –  Borland Jbuilder (per Java)‏ –  Kdevelop (C / C++ sotto linux)‏ – Microsoft Visual Studio

Page 12: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

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

Page 13: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Avviare eclipse

Page 14: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Workspace •  Ambiente di lavoro

–  Racchiude progetti – Mantiene

impostazioni –  Raggruppa viste e

funzionalità

Page 15: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

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

Page 16: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Creare progetto

Page 17: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Workspace - elementi •  Editor testuali

–  Inserimento, modifica, ecc. Del codice

–  Aiuti allo sviluppatore

Page 18: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Workspace - elementi •  Viste (views)‏

–  Visualizzazione/ editing di elementi del progetto

–  Gestione packages, Gestione errori,...

–  Personalizzabili

Page 19: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Workspace - elementi •  Prospettive (perspective)‏

–  Insieme di editor e viste per una specifica funzionalità

–  Prospettiva per lo sviluppo Java

–  Diverse a seconda della fase di sviluppo (testing, debugging, ecc.)‏

Page 20: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Java perspective

•  Java editor •  Package explorer •  Outline •  Problems •  Documentazione

Page 21: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

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”

Page 22: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Visualizzare impostazioni di esecuzione

Page 23: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

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 –  ....

Page 24: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Prospettiva di debug

•  Controlli per esecuzione passo/passo

•  Monitor variabili •  Stack chiamate •  Editor •  Output

Page 25: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

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

Page 26: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

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");

}

Page 27: Prova Finale a.a. 2011/2012 - Politecnico di Milanohome.deib.polimi.it/dubois/provafinale/eclipse.pdf · Eclipse • Piattaforma estendibile per sviluppo – Meccanismo dei plugin

Riferimenti

Documentazione API Java: http://docs.oracle.com/javase/6/docs/api/Documentazione Eclipse: http://help.eclipse.org/indigo/index.jsp