Laboratorio di Matematica e Informatica Prima esercitazione - 20 e 22 ottobre 2009 Andrea Valsecchi – Lorenza Manenti [email protected] [email protected] LABORATORIO DI MATEMATICA E INFORMATICA Laboratorio TURNO A-L: martedì dalle 14.30 alle 17.30 LAB4A1 TURNO M-Z: giovedì dalle 14.30 alle 17.30 LAB4A1 Ricevimento: previo appuntamento via E-mail. nel subject specificare: esercitazioni Laboratorio Informatica WEBSITE: http://www.lintar.disco.unimib.it/space/Formazione/Didattica/ Laboratorio+di+Matematica+e+Informatica+2009-2010 Programmare in JAVA JAVA Il codice sorgente viene preparato con un programma che permette di scrivere testi: un EDITOR. Il file si salva con estensione .java. Esempio: PrimoProgramma.java Il compilatore Java (javac) traduce il programma sorgente in una rappresentazione speciale detta bytecode Il bytecode Java non è un linguaggio macchina di una CPU particolare, ma di una macchina virtuale Java, macchina astratta in grado di eseguire un codice a basso livello. PrimoProgramma.class Codice sorgente Dati di input Compilatore java bytecode Interprete di bytecode Istruzioni in linguaggio macchina Esecuzione delle Istruzioni in linguaggio macchina L’interprete traduce il bytecode nel linguaggio macchina e lo esegue. Dati in output Realizzare un programma Analizziamo i passi necessari alla realizzazione di un programma e alla sua esecuzione 1. editazione: creazione del source file Primo.java contiene semplicemente del testo scritto nel linguaggio di programmazione Java 2. compilazione: generazione del bytecode file Primo.class traduzione del file di testo in istruzioni comprensibili alla Java Virtual Machine. javac Primo.java Primo.class 3. interpretazione ed esecuzione del bytecode file la Virtual Machine è un interprete che traduce ogni istruzione scritta in bytecode in istruzioni comprensibili alla piattaforma su cui vengono eseguite. java Primo I tool di base • javac - compilatore – compila un file sorgente con estensione .java generando il corrispondente file .class contenete il bytecode • javac NomeClasse.java • java - interprete – esegue un file .class interpretando il bytecode • java NomeClasse • javadoc - generatore di documentazione – genera la documentazione associata al file se all’interno del codice vengono inseriti nella maniera opportuna i commenti • javadoc NomeClasse.java Java: linguaggio di programmazione a oggetti La programmazione a oggetti permette di descrivere un sistema complesso attraverso le entità che lo costituiscono (OGGETTI) e le modalità con cui interagiscono. Si definisce una classe definendone i dati e i metodi, cioè il comportamento degli oggetti. La classe definisce come sono fatti gli oggetti che vi appartengono e genera gli oggetti. Oggetti che appartengono ad una classe si chiamano istanze della classe. Oggetti della stessa classe o di classi differenti possono interagire fra loro mediante lo scambio di messaggi, cioè mediante l’invocazione di metodi. Un sistema è frutto dell’interazione e coordinamento di varie entità (OGGETTI). Struttura di un programma JAVA Ogni programma Java è una raccolta di una o più classi Le classi si aprono con la parola riservata class seguita da un identificatore scelto dal programmatore. I nomi delle classi iniziano con una maiuscola. java è case sensitive. Una classe contiene uno o più metodi. Un metodo contiene le istruzioni. Ogni programma deve avere una e una sola classe contenente il metodo speciale main Struttura di un programma JAVA -1 // commenti sulla classe class PrimoProgramma { Intestazione della classe Corpo della classe } Struttura di un programma JAVA -2 // commenti sulla classe class PrimoProgramma { // commenti sul metodo public static void main (String[ ] args) { Corpo del metodo Intestazione del metodo } } N.B I commenti possono essere aggiunti ovunque Commenti • I commenti di un programma sono spesso chiamati documentazione inline • Devono essere inclusi per documentare lo scopo e le funzionalità del programma • Non influenzano il funzionamento. Vengono trascurati dal compilatore. • Possono avere tre forme: // commenti fino alla fine della riga /* commento che può stare su più righe */ /** commenti di documentazione, vengono utilizzati dal programma javadoc per generare la documentazione */ Il primo programma Cominciamo con un esempio semplicissimo: si vuole semplicemente visualizzare la scritta “Ciao a tutti!” 1 passo EDITAZIONE Si comincia scrivendo il file sorgente con un editor di testi: 1 riga) intestazione della classe : parola riservata class + identificatore scelto dal programmatore. La riga termina con parentesi graffa aperta, che si chiude all’ultima riga del programma sorgente. Le parentesi contengono la definizione della classe. class Saluti { Definizione della classe } Il primo programma EDITAZIONE 2 riga) metodo della classe : la classe deve contenere un metodo speciale main, tra parentesi tonde sono specificati i parametri del metodo (trascuriamone ora il significato). L’esecuzione di un programma avviene sempre a partire da un metodo di nome main con intestazione come quella indicata nell’esempio. L’intestazione finisce con una parentesi graffa che si chiude alla penultima riga del programma. Fra le due parentesi si trova il codice del metodo. Intestazione del metodo class Saluti { public static void main (String [ ] args) { codice del metodo } } Il primo programma EDITAZIONE Dalla 3 riga) codice del metodo: è costituito da un insieme di istruzioni. Ogni istruzione deve terminare con ;. L’unica istruzione del programma in esempio è l’invocazione del metodo println dell’oggetto System.out class Saluti{ public static void main (String [ ] args){ System.out.println(“Ciao a tutti!”); } } Salvare il file come: Saluti.java Nella programmazione ad oggetti la computazione avviene tramite interazioni di oggetti. Ogni oggetto è capace attraverso i metodi di svolgere determinati compiti. In questo esempio, System.out è un riferimento all’oggetto schermo e println è un metodo di questo oggetto. Il servizio è richiesto attraverso un messaggio. Il messaggio è costituito dal nome del metodo e tra parentesi gli argomenti che contengono informazioni aggiuntive su come deve operare il metodo. Il primo programma COMPILAZONE • Aprire una finestra DOS o Command Prompt • Posizionarsi sulla directory in cui è stato salvato il sorgente java e digitare: C:\ProgrammiJava>javac Saluti.java • Il compilatore Java creerà il bytecode Saluti.class Il primo programma ESECUZIONE • Nella stessa directory in cui è stato compilato il file sorgente, lanciare l’interprete java digitando: C:\ProgrammiJava>java Saluti • Che produrrà: Metodo println e print class Saluti{ public static void main (String [ ] args){ System.out.println(“Ciao a tutti!”); } } è equivalente a class Saluti2{ public static void main (String [ ] args){ System.out.print (“Ciao ”); System.out.print (“a ”); System.out.print (“tutti! ”); System.out.println (“”); } } Installare Java su Windows Preparare il proprio PC • Per poter iniziare a “produrre” in Java occorre installare: – l’ambiente di sviluppo (a linea di comando) completo – un “buon” editor di testi • L’ambiente di sviluppo consta di due parti: – l’ambiente vero e proprio • file eseguibile (estensione exe) autoinstallante – la documentazione del set di classi • file zippato (estensione zip) da scompattare manualmente La lista della spesa (1/2) • Gli strumenti fondamentali: – JavaTM 2 SDK, Standard Edition della versione corrente • scaricare il file jdk-6u7-windows-i586-p.exe dal sito della Sun – un qualsiasi editor di testi ASCII - Context (http://www.context.cx/) - Notepad++ (http://notepadplus.sourceforge.net/it/site.htm) - Notepad di Windows La lista della spesa (2/2) • Gli strumenti opzionali, ma fortemente consigliati: – la documentazione delle classi del JavaTM 2 SDK, Standard Edition della versione corrente • scaricare il file jdk-6-doc.zip dal sito della Sun (http://java.sun.com/javase/downloads/index.jsp) Installazione SDK • Il file scaricato è un file eseguibile e autoinstallante • Basta eseguire un doppio click sull’icona e seguire le istruzioni fornite – una volta installato è possibile rimuovere il file scaricato per guadagnare spazio su disco – una volta installato si otterà la seguente struttura di directory: jdk<version> readme.html Readme.txt src.jar COPYRIGHT LICENCE bin lib include include-old jre bin demo lib Impostazione della variabile PATH • La variabile d’ambiente PATH specifica il percorso di ricerca dei file eseguibili • Non è obbligatorio impostarla, ma è conveniente poiché permette di lanciare i comandi Java da tutte le directory senza specificare il percorso di ricerca del comando – se non la si imposta devo scrivere ogni volta: C:\>jdk<version number>\bin\javac MyClass.java • Per impostare in maniera permanente il PATH, occorre aggiungere il percorso completo della directory jdk<version number>\bin alla variabile d’ambiente PATH Setup ambiente su WinXP • Su “My Computer” con tasto destro • Scegliere “Properties” Setup ambiente su WinXP • Selezionate il “tab” Advanced • Selezionare “Environment Variables” PATH per WinXP • • Selezionare nelle variabili di sistema la voce PATH e fare clic sul bottone Edit Aggiungere a destra della linea un punto e virgola (;) seguito dal percorso assoluto della directory jdk<version number>\bin – esempio: C:\Program Files\Java\ jdk1.5.0_09\bin PATH per Windows 95 e 98 • Aprire in modifica il file Autoexec.bat che si trova nella radice dell’unità logica C • Cercare se esiste una linea che inizia con set PATH ... – esiste • aggiungere a destra della linea un punto e virgola (;) seguito dal percorso assoluto della directory jdk<version number>\bin • esempio: set PATH=c:\WINDOWS;C:\WINDOWS\COMMAND;c:\jdk1.3.1_02\bin – non esiste • creare la linea di comando per il path in toto: • esempio: set PATH=%PATH%;c:\jdk1.3.1_02\bin Impostazione della variabile CLASSPATH • La variabile d’ambiente CLASSPATH specifica il percorso di ricerca delle classi compilate e scritte dall’utente – da qui in avanti ci si rifa’ al caso della sola directory corrente come percorso di ricerca di classi utente • Verificare se la variabile CLASSPATH è imposta nel proprio PC – per verificare lanciare dal prompt del DOS il comando set e controllare la lista che appare • Se non è stata impostata, lasciare le cose come stanno • Se è stata impostata – se si vuole mantenere • verificare che compaia “.” tra le directory di ricerca. Se non compare, aggiungerlo – se non si vuole mantenere • rimuovere le impostazioni • La procedura di modifica è analoga a quella descritta per il PATH Verifica • Per verificare che tutto funzioni correttamente basta aprire una sessione DOS e lanciare il comando java -version • Se l’output è simile a quanto riportato sotto, l’installazione dell’ambiente è andata a buon fine