Programmazione Java Avanzata Concetti su Java

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione Java Avanzata Concetti su Java"

Transcript

1 Programmazione Java Avanzata Concetti su Java Ing. Giuseppe D'Aquì

2 Testi di Riferimento Java ( R. Liguori, P. Liguori), O'Reilly Hops Tecniche Nuove (2008)

3 Java Virtual Machine Il codice scritto in Java viene compilato in un formato molto simile al codice macchina, chiamato bytecode Il bytecode viene eseguito da una Java Virtual Machine, che lo traduce just-in-time in codice macchina specifico E' il fondamento del concetto di Write Once, Run Anywhere

4 Tipi di Java Java è un linguaggio che ha più facce Viene usato in ambito: Desktop Application (Java Standard Edition) Web Application (Java Enterprise Edition) Mobile Application (Java Micro Edition e Android) Il linguaggio è sempre lo stesso, cambiano i tipi di JVM utilizzate e le librerie a disposizione Ci soffermeremo su Java Enterprise Edition

5 JVM e altri linguaggi JVM non supporta solo Java In ambito enterprise è naturale avere un insieme di software scritto negli anni, da persone diverse e con linguaggi diversi Inoltre la sintassi di Java è carente su alcuni aspetti (ad esempio, programmazione funzionale) e quindi si può semplificare lo sviluppo utilizzando linguaggi differenti Moltissimi linguaggi sono stati portati su JVM, per permettere l'integrazione con framework e librerie Java JRuby (Ruby) Jython (Python) PHP/Java Bridge e Quercus (PHP)

6 JVM e altri linguaggi (2) Alcuni linguaggi sono stati inventati come sostituti o ad integrazione di Java Groovy Scala Clojure Spesso le funzionalità introdotte sono la tipizzazione dinamica, programmazione funzionale, concorrenza In Java si può accedere a funzionalità a basso livello tramite il framework JNI (Java Native Interface), con il quale si possono chiamare funzioni scritte in C, C++ o Assembly

7 Java IDE Dato che Java è ormai il linguaggio più popolare* nell'industria del software, sono numerosi gli ambienti integrati di sviluppo (IDE) Eclipse (inizialmente IBM, ora Eclipse Foundation) Netbeans (inizialmente Sun, ora Oracle) IntelliJ IDEA Jbuilder * vedi TIOBE Index: [http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html]

8 Eclipse E' il più usato in ambito Java Ha un'architettura modulare Supporta decine di linguaggi Supporta praticamente tutte le librerie e framework java, dato che i plugin specifici vengono sviluppati prima per Eclipse e poi per gli altri IDE Ha degli ottimi analizzatori di codice

9 Convenzioni I nomi delle classi sono sostantivi che iniziano in maiuscolo Es. class Studente{ } Se il nome è composto da più di un sostantivo, ognuno di questi avrà l'iniziale maiuscola (convenzione CamelCase) Es. class StudenteLavoratore{... } I nomi dei metodi sono composti da un verbo, oppure un verbo più sostantivo; la prima iniziale minuscola, le successive maiuscole Es. int getricaviesercizio() I nomi delle variabili membro sono composti da sostantivi e usano la stessa convenzione dei metodi

10 Convenzioni Le costanti sono tutte in maiuscolo, con i sostantivi separati da underscore Es. public static int MAX_VOTO = 30 Le costanti di enumerazione sono trattate come le costanti Es. enum TipoStudente{LAVORATORE, NON_LAVORATORE} I nomi dei package sono tutti in minuscolo, con i sostantivi separati da underscore Es. package org.unirc.ing.programmazione_java_avanzata Attenzione! Ogni azienda segue le sue convenzioni per i package, chiedete prima

11 Javadoc Javadoc è un generatore di documentazione per il codice Usa dei commenti speciali chiamati javadoc comments Formato: inizia con /**, termina con */ I commenti Javadoc vengono estratti in fase di compilazione e permettono di generare documentazione senza scriverla a parte Ad esempio Eclipse è in grado di restituire, con un popup, i commenti Javadoc per le classi e i metodi che stiamo usando Si possono commentare classi, metodi e variabili

12 Javadoc: Esempio /** * Descrizione breve * * Descrizione lunga, che può stare anche su * più righe. * b Stringa che rappresenta la parola cercata Indice dell'array che contiene la parola cercata */ public int cercastringa(string b) { }

13 Classi Astratte In Java le classi astratte si definiscono con la parola chiave abstract Se una classe è astratta, non è possibile istanziare oggetti di quel tipo Errore: ClasseAstratta obj = new ClasseAstratta(); Se la classe astratta fa parte di una libreria (non è stata scritta da noi), è necessario trovare classi concrete che la estendano Oppure estenderla noi

14 Interfacce Le interfacce (interface) sono definizioni di insiemi di metodi pubblici, senza implementazione Simili alle classi astratte Una interface è un contratto esplicito nel codice Ogni classe che implementa una interface deve possedere alcune funzionalità pubbliche (metodi) Se sappiamo che una classe implementa una certa interface, sappiamo che ha certe funzionalità e non ci interessa sapere come vengono eseguite Questo è un concetto di Design By Contract fondamentale quando più di una persona deve scrivere un software

15 Java Generics Dalla versione 5.0 Java ha aggiunto tecniche per rendere generica la gestione di strutture dati Ovvero, è possibile implementare una struttura dati (Lista, Array, ecc) in modo indipendente dal tipo che dovrà contenere Per esempio è possibile avere una List che gestisca Studenti e una List che gestisca Elettrodomestici, senza usare l'ereditarietà Con ereditarietà: public class ListStudente extends List{ } public class ListElettrodomestici extend List { } Con Generics: public class List <E> { }

16 Java Collections Le Java Collections sono interfacce e classi standard che permettono di gestire strutture dati, gruppi di oggetti Rendono obsoleto l'uso del tipo array nativo (es. int[10]) Implementano tutte l'interfaccia Collection o una delle sottointerfacce List, Queue, Set, Map Sono estendibili, ovvero possiamo creare tipi specializzati di Collections (oppure possiamo usare librerie che li creano) Hanno un supporto per i Java Generics Es. Collection lista = new ArrayList<String>();

17 Eccezioni Le eccezioni in java sono di due tipi: Checked Exception Unchecked Exception Le Checked Exception sono controllate in fase di compilazione cioè possiamo sapere dalla definizione dei metodi se un certo tipo di codice può lanciare una data eccezione Esempio: tutte le eccezioni definite da noi o dai framework Le Unchecked Exception invece sono lanciate per problemi a run-time, che non potevano essere conosciuti in fase di compilazione del codice Esempio: ArrayIndexOutOfBoundsException, NullPointerException

18 Eccezioni (2) Le eccezioni possono essere gestite (con try/catch) Esempio: public void nostrafunzione(){ try{ obj.funzionechelanciaeccezione(); }catch(myexception e){ } } Le eccezioni possono essere rilanciate ad una funzione di livello più alto: public void nostrafunzione() throws MyException{ } obj.funzionechelanciaeccezione();

19 Java Annotations Dalla versione 5.0 Java ha introdotto dei meccanismi per inserire metadati descrittivi nel codice stesso Questi metadati (dati a proposito dei dati) possono essere usati per rendere espliciti alcuni comportamenti Siccome sono immersi nel codice, esistono analizzatori in grado di adoperarli per semplificare il lavoro si sviluppo o potenziare il Design By Molti framework definiscono annotation proprie

20 Java Reflection La Java Reflection Api è un insieme di classi e funzionalità che vengono usate per conoscere e manipolare gli oggetti e i metodi attualmente in esecuzione Per esempio è possibile aggiungere o eliminare metodi alle classi a run-time Es. obj.getclass() Può essere usato per rendere il codice illeggibile (spaghetticoding) Viene usato più proficuamente per realizzare funzioni di analisi del codice, usate dagli IDE e dai framework

Gestione delle eccezioni in Java

Gestione delle eccezioni in Java Gestione delle eccezioni in Java - Introduzione al concetto di eccezioni E possibile definire un eccezione come un situazione imprevista che il flusso di un applicazione può incontrare. È possibile gestire

Dettagli

Il linguaggio di programmazione JAVA

Il linguaggio di programmazione JAVA Introduzione a JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

Scrivere un programma in Java

Scrivere un programma in Java Programmare in JAVA Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA uff. 0577 234850 - interno: 7102 Stanza 119 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

Strumenti per la programmazione

Strumenti per la programmazione Editing del programma Il programma deve essere memorizzato in uno o più files di testo editing codice sorgente 25 Traduzione del programma Compilazione: è la traduzione effettuata da un compilatore Un

Dettagli

Test di unità con JUnit4

Test di unità con JUnit4 Test di unità con JUnit4 Richiamo sul test di unità Il test d unità è una metodologia che permette di verificare il corretto funzionamento di singole unità di codice in determinate condizioni. Nel caso

Dettagli

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

Applicazioni web. Sommario. Parte 6 Servlet Java. Applicazioni web - Servlet. Alberto Ferrari 1. Servlet Introduzione alle API ed esempi Applicazioni web Parte 6 Java Alberto Ferrari 1 Sommario Introduzione alle API ed esempi Tomcat Server per applicazioni web Alberto Ferrari 2 Alberto Ferrari 1 Java: da applet a servlet In origine Java

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Informazioni generali Docente: Samuel Rota Bulò @email: srotabul@dais.unive.it Homepage: http://www.dais.unive.it/~srotabul/ ooprogramming2012.html

Dettagli

Informatica. Terzo anno Prof. A. Longheu

Informatica. Terzo anno Prof. A. Longheu 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

Dettagli

Telematica II 17. Esercitazione/Laboratorio 6

Telematica II 17. Esercitazione/Laboratorio 6 Multitasking e Multithreading Telematica II 17. Esercitazione/Laboratorio 6 Multitasking si riferisce all abilità di un computer di eseguire processi (jobs) multipli in maniera concorrente si ricorda che

Dettagli

Linguaggio e Piattaforma Java

Linguaggio e Piattaforma Java Linguaggio e Piattaforma Java Davide Di Ruscio Dipartimento di Informatica Università degli Studi dell Aquila davide.diruscio@univaq.it. Sommario 2 2» Tecnologia Java: Linguaggio e Piattaforma» Java Virtual

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II

Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II Appunti dei corsi di Programmazione di Rete Sistemi di elaborazione: Reti II PROF. G. BONGIOVANNI 0) INTRODUZIONE AL LINGUAGGIO JAVA PER PROGRAMMATORI C++...2 0.1) Caratteristiche principali... 2 0.1.1)

Dettagli

CORSO DI PROGRAMMAZIONE JAVA

CORSO DI PROGRAMMAZIONE JAVA CORSO DI PROGRAMMAZIONE JAVA Corso di Programmazione Java Standard Edition ( MODULO A) OBIETTIVI ll corso ha come obiettivo quello di introdurre la programmazione a oggetti (OOP) e di fornire solide basi

Dettagli

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

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

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

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD La prima applicazione Java con NetBeans IDE Dott. Ing. M. Banci, PhD Creare la prima applicazione 1. Creare un progetto: Quando si crea un progetto IDE occorre creare un ambiente nel quale costruire e

Dettagli

Programmazione AA 2012 2013

Programmazione AA 2012 2013 Programmazione ad Oggetti AA 2012 2013 Contenuti del corso Modulo A Tecniche di programmazione Docente: Prof. Michele Bugliesi Modulo B Tecniche di progetto Docente: Prof. Alessandro Roncato Contenuti

Dettagli

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

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse 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

Dettagli

JDBC di base. Le classi/interfacce principali di JDBC

JDBC di base. Le classi/interfacce principali di JDBC JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di

Dettagli

Programmazione ad Oggetti. Java Parte I

Programmazione ad Oggetti. Java Parte I Programmazione ad Oggetti Java Parte I Overview Caratteristiche generali 1 Caratteristiche generali Un moderno linguaggio orientato agli oggetti Pensato per lo sviluppo di applicazioni che devono essere

Dettagli

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC JDBC: Introduzione Java Database Connectivity (JDBC): parte 1 Gianluca Moro DEIS - Università di Bologna gmoro@deis.unibo.it Java Database Connectivity è il package Java per l accesso a database relazionali

Dettagli

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.

Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo. Prototype 28 4. Prototype (GoF pag. 117) 4.1. Descrizione 4.2. Esempio Specifica i tipi di oggetti a creare, utilizzando un istanza prototipo, e crea nuove istanze tramite la copia di questo prototipo.

Dettagli

JAVA Linguaggio e Piattaforma

JAVA Linguaggio e Piattaforma JAVA Linguaggio e Piattaforma romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Tecnologia Java: Linguaggio e Piattaforma Java Virtual Machine Storia Struttura di un programma Java

Dettagli

Informatica. Prof. A. Longheu. Introduzione a Java

Informatica. Prof. A. Longheu. Introduzione a Java Informatica Prof. A. Longheu Introduzione a Java 1 Code-Name Green Nome del progetto Sun con l obiettivo di fornire intelligent consumer-electronic devices. Il risultato fu Oak Un linguaggio basato su

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC versione base. Le classi/interfacce principali di JDBC JDBC versione base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte uno dei pregi è la completa indipendenza del codice

Dettagli

Linguaggi 2 e laboratorio

Linguaggi 2 e laboratorio Linguaggi 2 e laboratorio Docente: Leonardo Badia Contatti: leonardo.badia@gmail.com Pagina web del corso: www.unife.it/scienze/informatica/ insegnamenti/linguaggi-2-laboratorio Argomenti del corso: Java

Dettagli

Ambienti di Sviluppo

Ambienti di Sviluppo Ambienti di Sviluppo Insieme omogeneo di strumenti adatti allo sviluppo di progetti software. Editor; Compilatori e/o interpreti; Strumenti di test; Applicazioni che permettono di editare / disegnare il

Dettagli

Java. Programmazione orientata agli oggetti

Java. Programmazione orientata agli oggetti Java Programmazione orientata agli oggetti Nella programmazione orientata agli oggetti (OOP), un applicazione consiste di una collezione di oggetti interagenti, ognuno dei quali comprende una struttura

Dettagli

Introduzione a.net (2)

Introduzione a.net (2) Introduzione a.net (2) Il linguaggio C# Implementazioni alternative dell'architettura.net: Rotor Mono C#: un nuovo linguaggio C# : CLR = Java : JVM C# è il linguaggio di riferimento per.net Costruito su

Dettagli

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

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA A.A. 2007/08 Tutor: Barbara Pettazzoni barbara.pettazzoni@studio.unibo.it Java: Compilazione e Traduzione Editing, compilazione, esecuzione

Dettagli

Organizzazione della lezione. 15. Java Remote Method Invocation (3) Lo schema del Factory Design Pattern - 1. Factory design pattern

Organizzazione della lezione. 15. Java Remote Method Invocation (3) Lo schema del Factory Design Pattern - 1. Factory design pattern Organizzazione della lezione 15. Java Remote Method Invocation (3) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Il design pattern

Dettagli

Oggi. Programmazione e laboratorio: introduzione al corso. Docenti: laboratorio. Docenti: teoria. Il corso. Orario.

Oggi. Programmazione e laboratorio: introduzione al corso. Docenti: laboratorio. Docenti: teoria. Il corso. Orario. Programmazione e laboratorio: introduzione al corso Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione per

Dettagli

Programmazione distribuita

Programmazione distribuita Programmazione distribuita 1 Architettura client-server È il modo classico di progettare applicazioni distribuite su rete Server offre un servizio "centralizzato" attende che altri (client) lo contattino

Dettagli

Corso Online. We Train Italy info@wetrainitaly.it

Corso Online. We Train Italy info@wetrainitaly.it Corso Online Programmatore Java New Edition We Train Italy info@wetrainitaly.it Programma Generale del Corso Programmatore Java New Edition 1. Introduzione al corso Java da 0 al web Presentazione del corso

Dettagli

Realizzazione di un applicazione per la visualizzazione grafica didattica e di debug per algoritmi in Java

Realizzazione di un applicazione per la visualizzazione grafica didattica e di debug per algoritmi in Java La Sapienza Università di Roma Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Anno Accedemico 2008-2009 Relazione finale su progetto interno Realizzazione di un applicazione per la visualizzazione

Dettagli

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

Dettagli

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

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli

Android e Java per Android

Android e Java per Android Capitolo 1 Android e Java per Android Come accennato nell Introduzione, il primo capitolo è dedicato alla preparazione di tutto ciò che ci serve per sviluppare la nostra applicazione, che illustreremo

Dettagli

19. Introduzione al multi-threading

19. Introduzione al multi-threading 19. Introduzione al multi-threading Marco Faella Dip. Ing. Elettrica e Tecnologie dell'informazione Università di Napoli Federico II Corso di Linguaggi di Programmazione II I thread I thread, o processi

Dettagli

RMI Remote Method Invocation

RMI Remote Method Invocation RMI Remote Method Invocation [Pagina intenzionalmente vuota] (1 12 2004) slide 4:1/18 (p.106) Un applicazione RMI è un applicazione distribuita ad oggetti. Applicazione RMI tipica, strutturata in: server:

Dettagli

Indice. Introduzione PARTE PRIMA IL FRAMEWORK DI JAVASERVER FACES 1

Indice. Introduzione PARTE PRIMA IL FRAMEWORK DI JAVASERVER FACES 1 Indice Introduzione XI PARTE PRIMA IL FRAMEWORK DI JAVASERVER FACES 1 Capitolo 1 Introduzione a JavaServer Faces 3 1.1 Che cos è JavaServer Faces 3 1.2 La storia di JavaServer Faces 4 1.3 Gli obiettivi

Dettagli

Tesi di Laurea Estrazione automatica di ontologie da librerie Java per documentazione machine-readable di API

Tesi di Laurea Estrazione automatica di ontologie da librerie Java per documentazione machine-readable di API Università degli Studi di Genova Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Anno Accademico 2010/2011 Tesi di Laurea Estrazione automatica di ontologie da librerie

Dettagli

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa.

Quando si sa chiaramente come si deve comportare l applicazione si può analizzare una possibile soluzione applicativa. Introduzione alla tecnologia JMX 1 Viene analizzata l architettura sottostante le Java Managment Extensions (JMX) mostrandone un utilizzo applicativo e analizzando altri possibili scenari d uso di Ivan

Dettagli

Programmazione Java Avanzata

Programmazione Java Avanzata Programmazione Java Avanzata Introduzione a Servlet e Struts 2 Ing. Giuseppe D'Aquì 1 Testi Consigliati Java Enterprise in a nutshell, 3 rd edition (O'Reilly) Struts 2 in Action Brown, Davis, Stanlick

Dettagli

Non si deve fare ALCUN riferimento alla parte specifica di JDBC.

Non si deve fare ALCUN riferimento alla parte specifica di JDBC. Un applicazione per la quale sia fondamentale l indipendenza dal Database può essere scritta in Java usando le specifiche. (Package java.sql) Non devono essere usate chiamate specifiche del database: Si

Dettagli

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente:

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il.NET Framework By Dario Maggiari L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il cuore del.net Framework è costituito dal CLR (Common Language Runtime) che, secondo

Dettagli

PROGETTO LAUREE SCIENTIFICHE

PROGETTO LAUREE SCIENTIFICHE 1 PROGETTO LAUREE SCIENTIFICHE Write once, write everywhere è il motto dei progettisti del linguaggio java. Infatti questo linguaggio è il risultato dell esigenza di programmare per quello che si può chiamare

Dettagli

Introduzione al linguaggio

Introduzione al linguaggio Capitolo 1 Introduzione al linguaggio Java è un moderno linguaggio di programmazione le cui origini risalgono al 1991, quando presso Sun Microsystems un team di programmatori, formato principalmente da

Dettagli

Cap.1 Framework dotnet e Ambiente di sviluppo

Cap.1 Framework dotnet e Ambiente di sviluppo High thoughts must have a high language. (Aristophanes) Cap.1 Framework dotnet e Ambiente di sviluppo in questo primo capitolo presentiamo l'ambiente di sviluppo che verrà utilizzato in questo corso. Si

Dettagli

Esercizi e soluzioni

Esercizi e soluzioni Esercizi e soluzioni Esercizi e soluzioni Esercizi modulo 1 Esercizio 1.a) HelloWorld Digitare, salvare, compilare ed eseguire il programma HelloWorld. Consigliamo al lettore di eseguire questo esercizio

Dettagli

Programmazione in Java. a cura di Francesco Galgani (www.galgani.it)

Programmazione in Java. a cura di Francesco Galgani (www.galgani.it) Programmazione in Java a cura di Francesco Galgani (www.galgani.it) 2 aprile 2006 Indice 1 Introduzione 3 1.1 Testi consigliati....................................... 3 1.2 Perché la programmazione ad

Dettagli

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) (RMI) Remote Method Invocation (RMI) in Java. Walter Cazzola Dipartimento di Informatica e Comunicazione Università à degli Studi di Milano. e-mail: cazzola@disi disi.unige.it Walter Cazzola Java: Remote

Dettagli

INTRODUZIONE INTRODUZIONE JAVA JAVA

INTRODUZIONE INTRODUZIONE JAVA JAVA INTRODUZIONE INTRODUZIONE Lo sviluppo di applicazioni complesse porta a costruire moduli software sempre più potenti e versatili, che possano essere riutilizzati in numerosi progetti I linguaggi ad oggetti

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

Dettagli

DESIGN PATTERNS Parte 2. Polimorfismo Pure Fabrication Simple Factory/Concrete Factory Factory Method Abstract Factory Protect Variations + Reflection

DESIGN PATTERNS Parte 2. Polimorfismo Pure Fabrication Simple Factory/Concrete Factory Factory Method Abstract Factory Protect Variations + Reflection DESIGN PATTERNS Parte 2 Polimorfismo Pure Fabrication Simple Factory/Concrete Factory Factory Method Abstract Factory Protect Variations + Reflection POLIMORFISMO Il polimorfismo è la base della programmazione

Dettagli

La cassetta di un buon carpentiere del software

La cassetta di un buon carpentiere del software IBM La cassetta di un buon carpentiere del software Luca Amato lucaamato@it.ibm.com Messina, 25 Maggio 2007 Agenda Microstoria dell'informatica e dei linguaggi Scegliere un linguaggio di programmazione

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Contenuti del Corso Riferimenti Regole del Corso Materiale Didattico Scheduling Esami Strumenti Software 16/01/2013 2 Contenuti

Dettagli

Esercitazione n 4. Obiettivi

Esercitazione n 4. Obiettivi Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:

Dettagli

Mappare il DB senza XML. Introduzione alle annotation di Hibernate3

Mappare il DB senza XML. Introduzione alle annotation di Hibernate3 Introduzione alle annotation di Hibernate3 a cura di Lucio Benfante Hibernate Hibernate è un framework che realizza un object/relational mapping (ORM) fra oggetti Java e strutture di un database relazionale

Dettagli

Programmazione in Java Parte I: Fondamenti

Programmazione in Java Parte I: Fondamenti Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice

Dettagli

PRACTICAL DEVELOPMENT OF A WEB SERVICE

PRACTICAL DEVELOPMENT OF A WEB SERVICE PRACTICAL DEVELOPMENT OF A WEB SERVICE 1 JAX-WS 2.0 Java API for XML Web Services Specifica basata su annotazioni Applicata su classi ed interfacce in modo da definire e gestire automaticamente il protocollo

Dettagli

Introduzione a Java. Jacopo Torrini. Dipartimento di Sistemi e Informatica Laboratorio di Tecnologie del Software. torrini@dsi.unifi.

Introduzione a Java. Jacopo Torrini. Dipartimento di Sistemi e Informatica Laboratorio di Tecnologie del Software. torrini@dsi.unifi. Introduzione a Java Jacopo Torrini Dipartimento di Sistemi e Informatica Laboratorio di Tecnologie del Software torrini@dsi.unifi.it Introduzione Il linguaggio Java è un linguaggio di alto livello con

Dettagli

RMI: metodi equals e hashcode

RMI: metodi equals e hashcode RMI: metodi equals e hashcode Per verificare se due oggetti remoti contengono gli stessi dati, la chiamata indirizzata al metodo equals() avrebbe bisogno di contattare i server dove si trovano gli oggetti

Dettagli

Il linguaggio C# Eventi ed eccezioni

Il linguaggio C# Eventi ed eccezioni Tecniche di Programmazione avanzata Corso di Laurea Specialistica in Ingegneria Telematica Università Kore Enna A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it

Dettagli

PAOLO CAMAGNI RICCARdO NIkOLAssy. CORsO di JAVA. Dalla programmazione ad oggetti alle applicazioni grafiche HOEPLI

PAOLO CAMAGNI RICCARdO NIkOLAssy. CORsO di JAVA. Dalla programmazione ad oggetti alle applicazioni grafiche HOEPLI PAOLO CAMAGNI RICCARdO NIkOLAssy CORsO di JAVA Dalla programmazione ad oggetti alle applicazioni grafiche HOEPLI Corso di Java Paolo camagni riccardo nicolassy Corso di Java Dalla programmazione ad oggetti

Dettagli

Java Virtual Machine

Java Virtual Machine Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina

Dettagli

Linguaggi di programmazione II Silvio Imbòsilim@libero.it

Linguaggi di programmazione II Silvio Imbòsilim@libero.it Linguaggi di programmazione II Silvio Imbòsilim@libero.it Obiettivo del corso Divulgare la conoscenza di aspetti piùevoluti di programmazione in linguaggio Java, di metodologie di programmazione ad oggetti

Dettagli

Modulo 4. L'ambiente di sviluppo

Modulo 4. L'ambiente di sviluppo Modulo 4 L'ambiente di sviluppo 4.1 Introduzione a Java e XML Lo sviluppo di applicazioni Java, di solito, è molto diverso... 4.1.1 Cos'è Java Linguaggio orientato agli oggetti, general purpose. "Write

Dettagli

Java. Traditional portability (ideal)

Java. Traditional portability (ideal) 1 Java JAVA: una introduzione 2 Traditional portability (ideal) C-code (Linux) (Pentium) Executable (Linux) Executable (Win32) Linux Windows 32 (Mac) Executable (Mac) Mac 1 1 3 Portability of Java programs

Dettagli

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio

Concetti Base Eccezioni Eccezioni e Metodi Gerarchia di Eccezioni. Java: Eccezioni. Damiano Macedonio Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 30 maggio 2014 Introduzione Un programma diviso in sezioni distinte Un approccio alla

Dettagli

1. Destinatari e requisiti di ingresso. 2. Durata sede e organizzazione del corso. 3. Oggetto della formazione

1. Destinatari e requisiti di ingresso. 2. Durata sede e organizzazione del corso. 3. Oggetto della formazione Summer school per lo sviluppo di applicazioni software enterprise Sottotitolo: "Formazione, seminari e sviluppo software in Java. Implementazione di un caso di studio reale" Sardegna Ricerche, nell ambito

Dettagli

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

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Traduzione ed esecuzione di programmi. Dispensa 08 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 08 Traduzione ed esecuzione di programmi Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente materiale didattico

Dettagli

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144

Mobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144 Mobilità di Codice Abbiamo già visto come un dato host possa trasmettere un oggetto (serializzabile) ad un altro host. Quest ultimo potrà eseguire l oggetto pur non possedendo il bytecode della classe

Dettagli

Programmazione Java: Variabili membro, Metodi La parola chiave final

Programmazione Java: Variabili membro, Metodi La parola chiave final Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave

Dettagli

PHP: Interfacce; Gestione errori ed eccezioni. Pasqualetti Veronica

PHP: Interfacce; Gestione errori ed eccezioni. Pasqualetti Veronica PHP: Interfacce; Gestione errori ed eccezioni i Pasqualetti Veronica Interfacce In PHP non si possono ereditare proprietà da più classi. 2 Per ovviare al problema si possono creare delle interfacce che

Dettagli

Synchronized (ancora)

Synchronized (ancora) Synchronized (ancora) Riscriviamo l esempio di prima. Usiamo una struttura modulare, con una classe Notificatore che ha opportuni metodi. La classe ha due campi privati, la lista buftext e un suo thread.

Dettagli

Metodologie di progetto Estensione di classi Implementazione di interfacce Composizione

Metodologie di progetto Estensione di classi Implementazione di interfacce Composizione Gerarchie di Tipi Metodologie di progetto Estensione di classi Implementazione di interfacce Composizione Notazione UML Relazione Simbolo Significato Ereditarietà Implementazione Aggregazione Dipendenza

Dettagli

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati Activation In generale i Sistemi ad oggetti distribuiti sono progettati per lavorare con oggetti persistenti. Dato che questi sistemi saranno composti da migliaia (forse milioni) di tali oggetti, sarebbe

Dettagli

Ottava Esercitazione. introduzione ai thread java mutua esclusione

Ottava Esercitazione. introduzione ai thread java mutua esclusione Ottava Esercitazione introduzione ai thread java mutua esclusione Agenda Esempio 1 Concorrenza in Java: creazione ed attivazione di thread concorrenti. Esercizio 2 da svolgere Concorrenza in Java: sincronizzazione

Dettagli

Java? Sì, grazie. Scopo del corso

Java? Sì, grazie. Scopo del corso Modulo di Java? Sì, grazie Il linguaggio di Internet? Portabilità su qualunque piattaforma (non solo calcolatori): It works everywhere Supporto e disponibilità di strumenti, librerie e documentazione garantiti

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Classi astratte Le classi astratte sono un ibrido tra le classi concrete e le interfacce. Hanno le stesse caratteristiche di una

Dettagli

Java per programmatori C++

Java per programmatori C++ 1 of 10 Java per programmatori C++ autore: Matteo Lucarelli ultima versione su: matteolucarelli.net Architettura e concetti generali Cosa scaricare ed installare Tutti gli strumenti per la programmazione

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Programmazione di rete in Java

Programmazione di rete in Java Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo

Dettagli

La velocità di una carovana

La velocità di una carovana Programmazione A.A. 2002-03 I linguaggio Java ( Lezione X, Parte I ) Il primo programma Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail

Dettagli

Modulo 4: Ereditarietà, interfacce e clonazione

Modulo 4: Ereditarietà, interfacce e clonazione Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo

Dettagli

UnicastRemoteObject. Massimo Merro Programmazione di Rete 103 / 124

UnicastRemoteObject. Massimo Merro Programmazione di Rete 103 / 124 UnicastRemoteObject Java RMI fornisce diverse classi base per definire server remoti: UnicastRemoteObject < RemoteServer < RemoteObject dove A < B significa che A è una sottoclasse di B. UnicastRemotObject

Dettagli

L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo

L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo Design Pattern L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo sviluppo dei programmi, il loro mantenimento,

Dettagli

Telematica II 15. Esercitazione/Laboratorio 5

Telematica II 15. Esercitazione/Laboratorio 5 Protocollo FTP FTP Client TCP control connection (port 21) FTP Server Telematica II 15. Esercitazione/Laboratorio 5 File System locale TCP data connection (port( 20) File System remoto La connessione di

Dettagli

Esercitazione del Corso di Informatica Grafica. Strumenti per scrivere applicazioni in JAVA

Esercitazione del Corso di Informatica Grafica. Strumenti per scrivere applicazioni in JAVA Esercitazione del Corso di Informatica Grafica Strumenti per scrivere applicazioni in JAVA Perché Java Indipendenza dalla piattaforma Un applicazione scritta in Java può essere facilmente spostato da un

Dettagli

Linguaggi dinamici. Giacomo Cabri giacomo.cabri@unimore.it Riccardo Martoglia riccardo.martoglia@unimore.it

Linguaggi dinamici. Giacomo Cabri giacomo.cabri@unimore.it Riccardo Martoglia riccardo.martoglia@unimore.it Linguaggi dinamici Giacomo Cabri giacomo.cabri@unimore.it Riccardo Martoglia riccardo.martoglia@unimore.it Home page del corso https://www.agentgroup.unimore.it/didattica/ld/ 1 LINGUAGGI DINAMICI PARTE

Dettagli

Livelli di astrazione

Livelli di astrazione Realizzare Classi Astrazione Perdita di dettaglio Utile nella descrizione, progettazione, implementazione e utilizzo di sistemi complessi Dettagli trascurabili vengono incapsulati in sottosistemi più semplici

Dettagli

Enterprise @pplication Integration Software S.r.l.

Enterprise @pplication Integration Software S.r.l. SAP rel.1.0 : SAP State: Final Date: 03-27-200 Enterprise @pplication Integration Software S.r.l. Sede legale: Via Cola di Rienzo 212-00192 Rome - Italy Tel. +39.06.6864226 Sede operativa: viale Regina

Dettagli

13. Chain of Responsibility

13. Chain of Responsibility Chain of Responsibility 92 13. Chain of Responsibility (GoF pag. 223) 13.1. Descrizione Consente di separare il mittente di una richiesta dal destinario, in modo di consentire a più di un oggetto di gestire

Dettagli

Programmazione Java Avanzata Spring - JDBC

Programmazione Java Avanzata Spring - JDBC Programmazione Java Avanzata Spring - JDBC Ing. Gianluca Caminiti Riferimenti Spring http://www.springsource.org/ (scaricate il reference) Beginning Spring 2 - From Novice to Professional. APress. 2008

Dettagli

DATI IDENTIFICATIVI DEL PROGETTO

DATI IDENTIFICATIVI DEL PROGETTO DATI IDENTIFICATIVI DEL PROGETTO N. VERSIONE 1.0 ITEM Integrazione con Java DATA DI USCITA PREVISTA DESCRIZIONE Creazione di DLL per integrazioni con Java Pag. 1 di 9 Descrizione dei requisiti Sezione

Dettagli

Client e Server comunicano tramite il protocollo SOAP.

Client e Server comunicano tramite il protocollo SOAP. In questo tutorial implementeremo un semplice SOAP web service in PHP che un client Java richiamerà. In questo modo mostreremo l'interoperabilità fra linguaggi diversi che SOAP permette di avere. La struttura

Dettagli

Java RMI: Esempio Completo di un Applicazione Distribuita

Java RMI: Esempio Completo di un Applicazione Distribuita Java RMI: Esempio Completo di un Applicazione Distribuita Il Problema Produttore/Consumatore in Ambiente Distribuito* *a cura del Prof. L. Nigro, Università della Calabria Java RMI (Remote Method Invocation)

Dettagli