Informatica. Terzo anno Prof. A. Longheu



Documenti analoghi
Informatica. Prof. A. Longheu. Introduzione a Java

Strumenti per la programmazione

Java: Compilatore e Interprete

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Panoramica: che cosa è necessario

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

Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008)

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

Tutorial per l installazione del J2SE 6 e configurazione del sistema operativo

Linguaggi e Laboratorio. Panoramica su Java

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD

Programmare in Java. Olga Scotti

Programmazione ad Oggetti. Java Parte I

Ambienti di Sviluppo

Corso Eclipse. Prerequisiti. 1 Introduzione

Eclipse. Avviare un progetto e compilare un semplice programma

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08

2 - Introduzione al linguaggio Java

Corso di Informatica

Struttura di un programma Java

Guida all utilizzo del compilatore lcc-win32 per creare una applicazione console

JAVA: storia e peculiarità

Approccio stratificato

Scrivere un programma in Java

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Introduzione ad Eclipse

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Java. Traditional portability (ideal)

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione

Installazione del Software. per lo Sviluppo di Applicazioni Java

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi

Tale attività non è descritta in questa dispensa

Le command line di Java

Appunti di Informatica 1

Capitolo 4 Pianificazione e Sviluppo di Web Part

sito web sito Internet

Corso sul linguaggio Java

Fondamenti di programmazione in Java. Lezione III

Corso sul linguaggio Java

Architetture Web: un ripasso

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Java? Sì, grazie. Scopo del corso

Telematica II 17. Esercitazione/Laboratorio 6

Registratori di Cassa

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Telematica II 5. Esercitazione/Laboratorio 1

Corso di Informatica

Il Sistema Operativo (1)

Manuale servizio Webmail. Introduzione alle Webmail...2 Webmail classica (SquirrelMail)...3 Webmail nuova (RoundCube)...8

Ingegneria del Software 1: Eclipse

Operazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Application Server per sviluppare applicazioni Java Enterprise

Basi Android. Android si definisce open. Con8ene tecnologie open source. Il codice di Android è open. Licenza Open Source Apache 2.

Introduzione alla programmazione in C

Siti interattivi e dinamici. in poche pagine

Laboratorio di Sistemi Programmare in Php con NetBeans Php. Programmare in Php con Xampp e NetBeans IDE

Installazione del JDK 6

MANUALE D USO DELLA PIATTAFORMA ITCMS

19. LA PROGRAMMAZIONE LATO SERVER

Le variabili. Olga Scotti

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Il web server Apache Lezione n. 3. Introduzione

Architetture Applicative

VIRTUALIZZAZIONE. Docente: Marco Sechi Modulo 1

Virtualizzazione VirtualBox su Host Windows

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Dispensa di Informatica I.1

11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0

Introduzione a Dev-C++

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Configurare TPTP in Eclipse e testare un applicazione

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Architettura di un sistema operativo

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Programmazione Java Avanzata Concetti su Java

Lezione 1 Introduzione

Programmazione in Java Parte I: Fondamenti

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

Esempio di esecuzione di una pagina JSP: Il client chiede la pagina: sdfonline.unimc.it/info/modulo.jsp;

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

IRSplit. Istruzioni d uso 07/10-01 PC

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Da JavaScript a Java

Programmazione ad oggetti

Corso di PHP. Prerequisiti. 1 - Introduzione

Implementazione di MVC. Gabriele Pellegrinetti

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

Architetture software. Virtualizzazione

Parte II: Reti di calcolatori Lezione 12

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Codifica: dal diagramma a blocchi al linguaggio C++

PSG Table Builder Manuale Utente. PSG TABLE BUILDER Manuale Utente

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Componenti Web: client-side e server-side

Installazione e caratteristiche generali 1

SOMMARIO... 3 INTRODUZIONE...

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Transcript:

Informatica Terzo anno Prof. A. Longheu

INTRODUZIONE AL LINGUAGGIO JAVA Originariamente, il progetto che avrebbe portato al linguaggio Java era noto come progetto Green Nome del progetto Sun con l obiettivo di fornire intelligent consumer-electronic devices. Ilrisultato fu Oak Un linguaggio basato su C++ Creato da James Gosling Il nome del nuovo linguaggio fu cambiato in Java E fortemente ispirato al C++ ma riprogettato senza il requisito della piena compatibilità con il C (a cui però assomiglia) 2

Green in the red? Ilprogetto Green non andò lontano Il mercato degli intelligent consumer-electronic devices crebbe lentamente Sun non si impose in tale settore di mercato Fu sul punto di essere cancellato L esplosione del World Wide Web nel 1993 salvo il progetto Green Java fu ripensato come linguaggio per fornire contenuto dinamico alle pagine web Java fu formalmente annunciato nel 1995, oggi la versione è la 7.0 (o 1.7 update 51), in previsione la 8.0 3

Java Java nasce per applicazioni embedded Si diffonde attraverso il concetto di applet come piccola applicazione da eseguirsi dentro un browser Internet grafica portabile ed eseguibile ovunque Può benissimo essere usato come linguaggio per costruire applicazioni anche non per Internet anche non grafiche (rimane un linguaggio general purpose) 4

La Piattaforma Java Piattaforma: ambiente hardware o software dove sono eseguiti i programmi (win-32, win-64, Linux, OSx) Una piattaforma in genere può essere descritta come una combinazione di sistema operativo e hardware la Java platform è solamente software e viene eseguita al di sopra di altre piattaforme basate sull hardware 5

La Piattaforma Java La piattaforma consiste di due elementi: Java Virtual Machine (JVM) Java Application Programming Interface (Java API), ovvero una collezione di software pronti per l uso, ad esempio per gestire Graphical User Interface (GUI), organizzati in librerie di classi e interfacce correlate (packages) Java API e Java VM isolano il programma dall hardware 6

La Piattaforma Java Il codice Java viene compilato in un linguaggio intermedio chiamato bytecode Il bytecode è interpretato a run-time dalla JVM e convertito nel linguaggio macchina del calcolatore su cui è richiesta l esecuzione; la JVM è in quindi un computer virtuale sviluppato per rendere indipendente dalla macchina il codice Java: paradigma write once, run anywhere, talvolta mutato dai detrattori in write once, debug anywhere La portabilità del codice è assicurata dalla garanzia progettuale che i tipi di data abbiano comportamento standard al variare della piattaforma (ad esempio, i reali sono IEEE-compliant); in alternativa, il bytecode può essere compilato tramite un just in time (JIT) compiler, qualora occorrano prestazioni maggiori. 7

La Piattaforma Java 8

La Piattaforma Java Esistono edizioni differenti della piattaforma Java Standard Edition (J2SE) Librerie di base per lo sviluppo di applicazioni desktop (client applications) incluso AWT e Swing Consente di eseguire applicazioni e applet Enterprise Edition (J2EE) per lo sviluppo di applicazioni lato server Per sviluppatori Web (EJB s, Servlets e JSPs) richiede J2SE Micro Edition (J2ME) per lo sviluppo di applicazioni mobili librerie ridotte e più piccole Implementa un subset delle funzionalita di Java 9

La Piattaforma Java Ogni edizione si compone di: una serie di specifiche (documenti) una serie di strumenti (es: compilatore, debugger ecc.) una serie di librerie o API (Application Program Interfaces) schematizzando (eccessivamente) è possibile dire che i livelli più complessi includono i più semplici 10

Java2 SE Conceptual diagram 11

Tipi di Programmi Java permette di 4 tipi di programmi: Application Applet Servlet Beans Vediamo solo i primi 2, e di questi nel seguito considereremo solo il primo (application) 12

Java Application Standalone program nel senso che richiede solo la JVM per essere eseguito Non richiede un programma host (come un browser) per l esecuzione. Il metodo main è utilizzato come entry point e deve quindi essere presente Ilmetodo main deve avere la signature public static void main(string args[ ]) 13

Java Applet Piccoli programmi tipicamente scaricati da un server su una macchina client La JVM è costruita all interno del browser o di un apposito programma (appletviewer), che agiscono come programma host per l applet. Un applet è tipicamente lanciato dentro un file HTML Un applet può essere inserito in un documento HTML con l apposito tag <applet> Un applet generalmente opera sotto una gestione sicura che impone un sandbox security. Ciò previene che un applet possa eseguire operazioni potenzialmente pericolose come leggere e scrivere su un disco. Un applet è derivato dalle classi Applet o JApplet. 14

Esempio applet Informatica Prof. A. Longheu 15

Il Java Development Kit (JDK) Il JDK è l insieme di strumenti di sviluppo che funge da riferimento ufficiale del linguaggio Java: non è un ambiente grafico integrato: è solo un insieme di strumenti da usare dalla linea di comando non è particolarmente veloce ed efficiente (non sostituisce strumenti commerciali) però funziona, è gratuito ed esiste per tutte le piattaforme (Win32, Linux, Solaris, Mac..) riferimento: http://www.java.com/it/ sito ufficiale per scaricare tutto il software e la documentazione 16

Documentazione La documentazione ufficiale è scaricabile dal sito http://docs.oracle.com/javase/7/docs/api/index.html Terminato il download, si decomprime il file in una cartella del computer e per consultare le Api basta eseguire file "index.htm" presente nella cartella di estrazione. Esiste anche il tutorial, ossia un percorso di apprendimento guidato dalle prime nozioni alle più avanzate, anche questo scaricabile dal sito ufficiale Su Internet esistono numerosi siti ricchi di esempi e guide. Qualche esempio: http://examples.oreilly.com/jenut/ http://www.exampledepot.com/ http://www.java2s.com/code/java/jdk-6/catalogjdk-6.htm http://www.idevelopment.info/data/programming/java/programming_j ava_programming.shtml 17

Ambiente di sviluppo Esistono molti strumenti tesi a migliorare il JDK, e/o a renderne più semplice l uso editor con syntax highlightling, ad esempio Scite http://www.scintilla.org/scite.html ambienti integrati freeware o shareware che, pur sfruttando il JDK, ne consentono l uso in modo interattivo e in ambiente grafico JCreator LE, EditPlus, Forte, JaSupremo, etc... Eclipse http://www.eclipse.org ambienti integrati commerciali, dotati di compilatori propri e debugger 18

Ambiente di sviluppo Eclipse è un IDE (ambiente di sviluppo integrato) progetto open source legato alla creazione e allo sviluppo di una piattaforma di sviluppo ideata da un consorzio di grandi società quali Ericsson, HP, IBM, Intel, MontaVista Software, QNX, SAP e Serena Software Usato per la produzione di software di vario genere Fornisce Un completo IDE per il linguaggio Java (JDT, "Java Development Tools") un ambiente di sviluppo per il linguaggio C++ (CDT, "C/C++ Development Tools") plug-in che permettono di gestire XML, PHP Plug-in per progettare graficamente una GUI per un applicazione JAVA (Eclipse VE, "Visual Editor"), 19

Java Programming Informatica Prof. A. Longheu Il più semplice Programma Java è costituito da una singola classe e da un singolo metodo, il main: public class Programma { public static void main(string args[]){ System.out.println( ciao ); } } Le parole chiave public e class devono essere presenti. Il nome della classe è arbitrario (purchè diverso da parole chiave), ma deve coincidere con il nome del file dove viene salvato il codice Dentro la coppia di parentesi graffe della classe viene inserito il metodo main, che deve essere dichiarato public, static, void Il metodo è un contenitore di un insieme di istruzioni (qui solo println) La classe è un contenitore di metodi; ogni metodo è quindi un pezzo del programma. In questo caso c è solo il main Anche il main ha le sue {}, al cui interno si mettono le istruzioni del programma 20

Java Programming Convenzioni: il nome di una classe ha sempre l iniziale maiuscola (es. Esempio) se il nome è composto di più parole concatenate, ognuna ha l iniziale maiuscola (es. DispositivoCheConta) non si usano trattini di sottolineatura i nomi dei singoli campi (dati e funzioni) iniziano invece per minuscola Tutte queste non sono regole; infrangerle non crea errori, ma viola la convenzione e quindi rende meno leggibile il codice, specie agli altri 21

Java Programming Altro esempio: import java.io.*; public class Esempio { public static void main (String args []) throws IOException { int PriNum; int SecNum; int Somma; BufferedReader tastiera= new BufferedReader(new InputStreamReader(System.in)); System.out.println("inserisci il primo numero"); PriNum=Integer.parseInt(tastiera.readLine()); System.out.println("inserisci il secondo numero"); SecNum=Integer.parseInt(tastiera.readLine()); somma=prinum+secnum; System.out.println("la somma è "+somma); } } 22

Java Programming Informatica Prof. A. Longheu Ogni volta che nel main c è almeno una istruzione di I/O si deve mettere throws IOException nell intestazione Tutti i programmi in genere prevedono una fase di input (prendere due numeri da tastiera), una di elaborazione (sommarli) eduna di output (stampare il risultato) Per fare i calcoli vengono utilizzate delle caselle di memoria chiamate variabili (qui PriNum, SecNum e Somma) Ogni variabile va prenotata prima del suo utilizzo; l operazione viene chiamata dichiarazione e richiede di specificare il tipo e il nome della variabile, ad esempio int Somma significa che si desidera utilizzare una variabile chiamata Somma e destinata a contenere numeri interi BufferedReader tastiera= new BufferedReader(new InputStreamReader(System.in)); è l istruzione che prepara la tastiera per potere permettere all utente l inserimento dei numeri La tastiera grezza è System.in e lavora con i byte; l istruzione InputStreamReader() prende tale tastiera e ne converte i byte in caratteri; l istruzione BufferedReader() prende a sua volta il risultato e permetterà di bufferizzare, ossia di inserire tutti i caratteri desiderati fino alla pressione del tasto invio; senza la bufferizzazione il computer prenderebbe perbuona già la pressione di un singolo tasto L inserimento dei numeri avviene con il comando readline(); poichè tale comando legge caratteri, occorre convertirli in numeri, ecco perchè si usa Integer.parseInt() I println che precedono ogni readline() non sono obbligatori ma permettono di visualizzare un messaggio all utente, che altrimenti si troverebbe un cursore lampeggiante in attesa senza sapere cosa scrivere System.out.println("la somma è "+somma); stampa la scritta la somma è a cui attacca il valore contenuto nella variabile somma; il + concatena le due parti 23