4 Un primo programma Java Introduzione alla programmazione in Java class Program1 { System.out.println("Benvenuti al corso"); 1 5 Programmi e mondo reale Programmare ad oggetti Il codice di un programma interagisce con calcolatore ed i suoi componenti così come con entità e processi esterni La programmazione come attività di creazione di modelli. I concetti di classe, oggetto e scambio di messaggi. Un primo esempio di programma Java. Meccanismi di scrittura ed esecuzione di programmi Java. 2 3 6 Alcuni linguaggi famosi Fortran (1955) Cobol, Basic (1960s) Pascal (1969) C (1970) Ada (1984) C++ (1980s) Java (1990s) I programmi come modelli Il codice di un programma modella altre cose Interne: tastiera, dischi, reti, schermo Esterne: piani di volo, molecole, transazioni bancarie NH 2 NH 2
7 10 Chiamate Operatori Modelli I modelli sono nati prima dei calcolatori e NON devono necessariamente essere realizzati mediante calcolatori Esempio Classe operatore: Definisce il comportamento degli operatori (ad esempio, cambiamento di locazione, registrano il tempo di un intervento, ecc.) Ogni operatore in servizio è una istanza di tale classe Classe chiamata: Definisce il comportamento delle chiamate (ad esempio, priorità, orario di arrivo, cliente chiamante ecc.) Per ogni chiamata che arriva si crea una istanza 8 11 Elementi del modello Ogni modello è formato da elementi che rappresentano altre entità Gli elementi del modello presentano un comportamento consistente A seconda dei loro comportamenti comuni, gli elementi possono essere raggruppati in categorie diverse Il comportamento di un elemento può essere provocato da azioni esterne Programmazione OO Fuoco: gli oggetti e le classi che ne definiscono il comportamento Filosofia: In un programma in esecuzione sono gli oggetti che eseguono le operazioni desiderate Programmare in Java Scrivere le definizioni delle classi che modellano il problema Usare tali classi per creare oggetti Java è dotato di classi ed oggetti predefiniti Non si deve continuamente reinventare le ruota 9 12 Modelli in Java Elementi del modello: Oggetti La categorie di oggetti vengono chiamate Classi Una classe: Determina il comportamento degli oggetti appartenenti E definita da una sezione di codice Un oggetto Appartiene ad una classe Costituisce una istanza di tale classe Messaggi Gli oggetti sono gli elementi attivi di un programma Come fanno gli oggetti a compiere le azioni desiderate? Gli oggetti sono attivati dalla ricezioni di un messaggio Una classe determina i messaggi a cui un oggetto può rispondere I messaggi sono inviati da altri oggetti
13 16 Gerardo Invio di un messaggio Aumenta la luminosità del monitor fisso Rosa Nomi e referenze Le classi hanno un nome Ogni classe Java deve avere un nome Ogni classe ha un solo nome Es: Impiegato, Molecola, ContoCorrente Convenzione: comincia con una lettera maiuscola Regole Java per i nomi (identificatori) Lettere, cifre e caratteri speciali (es: _ ) Devono cominciare con una lettera Il linguaggio è case sensitive 14 17 Invio di un messaggio Aumenta la luminosità del monitor fisso Messaggio Comportamento: - Modifica - La proprietà luminosità -In aumento Referenza ad un oggetto Gerardo Destinatario (Receiver) Aumenta la luminosità del monitor fisso Rosa Nomi e referenze Gli oggetti NON hanno nome In Java gli oggetti sono identificati da riferimenti Un riferimento (reference) è una frase che si riferisce ad un oggetto I riferimento sono espressioni E possibile avere più referenze ad uno stesso oggetto 15 18 Messaggi Per l invio di un messaggio è necessario specificare: Ricevente Messaggio Eventuali informazioni aggiuntive Non tutti i messaggi sono comprensibili da un determinato oggetto: Es: abbassare il volume Un messaggio deve invocare un comportamento dell oggetto Classi ed oggetti predefiniti Modellano componenti e comportamenti del sistema Modellano l interfaccia grafica di colloqui con l utente Modellano oggetti di uso comune, ad esempio Data e Calendario Un esempio: il monitor Ci si riferisce a lui mediante il riferimento: System.out class Program1 { System.out.println("Benvenuti al corso");
XXXXXXX XXX XXXXXXXXXX XXXXX XXXXXXXXXXXX XXX XXXXXXXXXX XXXXXXXXXX XXX XXXXXXXXXX XXXX XXXXXXX XXX XXXXXXXXXX XXXXX XXXXXXXXXXXX XXX XXXXXXXXXX XXXXXXXXXX XXX XXXXXXXXXX XXXX 19 22 PrintStream e System.out La classe PrintStream Modella monitor e stampanti Comportamento: visualizzare sequenze di caratteri System.out Una referenze ad un oggetto predefinito Istanza della classe PrintStream Invio di un messaggio Forma generale: Riferimento-al al-destinatario.messaggio Esempio: System.out.println ( Benvenuti al corso ) Riferimento Messaggio L oggetto a cui si riferisce il riferimento System.out è il destinatario del messaggio println( Benvenuti al corso ) 20 23 PrintStream e System.out Invio di un messaggio System.out Un programma Java Si riferisce a oppure Un oggetto PrintStream Modella Invia un messaggio System.out.println( Benvenuti al corso ) println( Benvenuti al corso ) Un messaggio println Un programma Java Benvenuti al corso Modella Destinatario: un oggetto PrintStream 21 24 Messaggi in Java Forma generale Comportamento-desiderato (altre-informazioni) Esempio: println ( Benvenuti al corso ) Comportamento: println (stampa una linea) Informazione: Benvenuti al corso (contenuto della linea) Istruzioni Le istruzioni Java Provocano un azione (es: inviare un messaggio) Devono essere chiusi da punto e virgola ; Esempio System.out.println ( Benvenuti al corso ); L invio di un messaggio deve essere sempre espresso da una istruzione
25 28 Forma di un programma Almeno per le prime lezioni: Class ProgramName {... Meccanismi: Compilazione Il programma sorgente deve essere tradotto (compilato) per poter essere eseguito Class ProgramName {... Compilatore Programma sorgente Java byte code Un primo esercizio 26 Meccanismi: Compilazione 29 Scrivere un programma che annunci il vostro primo programma e l intenzione di continuare This is my first Java program but it won't be my last. Compilazione JDK: javac nome-del-file IDE: voce di menu Java Byte Code Il linguaggio macchina di una macchina virtuale Java Virtual Machine NON leggibile dall uomo Conservato in class files 27 30 Meccanismi: Editing Il testo dei programmi è memorizzato in file I file sono creati con opportuni editor Codifica Class ProgramName {... Programma sorgente Meccanismi: Esecuzione Un class file può essere eseguito su ogni piattaforma che ha la Java Virtual Machine Un programma; interprete Java Virtual Machine (MacOS) Java Virtual Machine (Windows) Java Virtual Machine (Unix)
31 34 Meccanismi: Esecuzione Elementi del linguaggio Java Esecuzione JDK: java nome-class IDE: voce di menu, icona Un programma Java NON può essere eseguito senza Java Virtual Machine Interpreta il codice Java Byte Code E a sua volta in esecuzione sul calcolatore Byte code Virtual machine Piattaforma Il formato del è libero Indentazione Convenzioni Una istruzione per linea Usare i tab e non gli spazi per l indentazione Commenti Racchiusi da delimitatori: /* */ Su linea singola: // 32 35 Nomi dei file Il compilatore produce un diverso class file per ogni classe definita in un file sorgente Il nome di ogni class file coincide con il nome della classe File sorgenti:.java C1.class Class file:.class Elementi del linguaggio Java /* Il mio primo commento */ /* * Il mio primo commento */ Class C1 { Class C2 { Class Cn { Prova.java Compilatore C2.class Cn.class // Il mio primo commento Statement // Il mio primo commento 33 36 Elementi del linguaggio Java Regole per la costruzione delle frasi Identificatori Parole chiave (keywords) Significati predefiniti Es: import, class, public, static, void NON PrintStream Ordine delle istruzioni Ordine lessicografico coincidente con l ordine di esecuzione Linee guida Inserire un commento prima di ogni classe per spiegarne scopo e comportamento NON spiegare come funziona Java Dare informazioni che non possono essere facilmente derivate dal codice Mai interrompere una istruzione con un commento
37 40 Esempio Passo 1: installazione J2SDK /* *Program1: Stampa un saluto */ class Program1 { System.out.println("Benvenuti al corso"); Il J2SDK (Java 2 Software Development Kit) contiene Compilatore Java->ByteCode (javac) Java Virtual Machine, per eseguire i programmi Java (java) Librerie: I/O, Rete, Interfacce Utente, Grafica, Utilità, etc. E molto altro Per Windows è un eseguibile (.exe) cliccare sull icona jdk-1_5_0_01-windows-i586-p Per Linux:./jdk-1_5_0_01-linux-i586.bin Per Linux (RPM): rpm ih./jdk-1_5_0_01-linux-i586.bin 38 41 Errori Passo 1: Installazione JDK A tempo di compilazione Scoperti dal compilatore Es: mancanza del punto e virgola, parentesi aperte e non chiuse A tempo di esecuzione (run time) Scoperti solo all atto dell esecuzione del programma Es: output difforme da quello atteso 42 Passo 1: Installazione JDK Quick start 39
43 46 Passo 2: Settare il path Passo 2: Settare il path La variabile d ambiente path contiene la lista dei percorsi in cui l interprete dei comandi o Explorer vanno a cercare programmi eseguibili Occorre aggiungervi il percorso delle applicazioni del Java SDK Cliccare col tasto destro su Risorse del computer e aprire la finestra Proprietà. Selezionare il tab Avanzate Cliccare su variabili d ambiente e modificare la variabile di sistema Path 44 47 Passo 2: Settare il path Il classpath La variabile d ambiente CLASSPATH contiene la lista di percorsi in cui la Java Virtual Machine va a cercare le classi quando un programma Java viene eseguito Tale variabile deve contenere il. (directory corrente) Necessario quando si esegue un programma Java dalla directory in cui esso è contenuto Aggiungere la variabile in maniera simile a quanto fatto per il PATH 45 48 Passo 2: Settare il path Installazione documentazione Aggiungere in testa alla variabile di sistema path il percorso di J2SDK \bin, ovvero, nel nostro caso: C:\Programmi\Java\jdk1.5.0_01\bin Separare tale percorso dal resto del contenuto della variabile mediante un punto e virgola ; Decomprimere il file jdk-1_5_0-doc.zip nella cartella C:\Programmi\Java\jdk1.5.0_01 Sarà creata una cartella docs contenente la documentazione in html del J2SDK Tale cartella conterrà ora documentazione html del Java SDK
49 52 Passo 3: creazione programma Uso di un IDE: NetBeans Un qualsiasi editor va bene (Notepad, Xemacs, etc.) Salvare il file con estensione.java (es. prova.java) Integrated Development Environment (IDE) sviluppato dalla SUN Editor guidato dalla sintassi Browsing delle classi Wizard per la creazione automatica di classi Compilazione e esecuzione dall IDE Editor (semplificato) di interfacce utente Molto altro!! Installarlo dall apposito package jdk-1_5_0_01-nb-4_0-bin-win 50 53 Passo 4: compilazione NetBeans (I) javac prova.java 51 54 Passo 5: esecuzione NetBeans (II)
55 58 NetBeans (III) NetBeans (VI) 56 59 NetBeans (IV) Esercizi Installare il J2SDK Creare un semplice programma con un editor di testo Compilare il programma Eseguire il programma Ripetere l operazione con NetBeans 57 NetBeans (V)