Linguaggi di programmazione II Silvio

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 Linguaggi di programmazione II Silvio Obiettivo del corso Divulgare la conoscenza di aspetti piùevoluti di programmazione in linguaggio Java, di metodologie di programmazione ad oggetti o di tipo generale (design pattern, collezioni, multithread, gestione avanzata dei tipi) 1

2 Testi consigliati C.S. Horstmanne G. Cornell, CoreJava 2, volumi 1 e 2, Pearson/Prentice Hall C.S. Horstmann, Progettazione del software e design pattern in Java, Apogeo Design Patterns Java Workbook S.J.Metsker Addison-Wesley Presentazioni del corso 2

3 Richiami di JAVA 3

4 Cosa èjava? Un linguaggio di programmazione orientato agli oggetti Un sistema portabile di sviluppo ed esecuzione di applicazioni Obiettivi iniziali: semplicità, sicurezza, orientamento ad internet 4

5 Java compilato o interpretato? Linguaggio compilato -> Il programma in linguaggio sorgente viene tradotto in linguaggio macchina eseguibile (diverso per le varie macchine) Il linguaggio interpretato -> Il programma (lo stesso per ogni macchina) viene eseguito direttamente da un interprete (esiste un interprete per ogni macchina). Svantaggi inefficienza Vantaggi portabilità Con Java si opera un compromesso. Il compilatore prepara un codice intermedio (bytecode) che viene eseguito sulle diverse piattaforme tramite l interprete JVM. Con Java si realizza anche il JIC (Just in timecompiling), caratteristica degli interpreti avanzati 5

6 Esecuzione di un programma JAVA Caratteristiche del bytecode Il codice delle operazione èlungo un byte (con o senza operandi). Il codice bytecode(stream) risulta compatto e adatto a circolare in rete. Il bytecode cerca di utilizzare molto lo stacke non i registri per essere eseguiti su macchine con pochi registri 6

7 Genesi di JAVA 1991 SUN nasce il linguaggio OAK scopo: sviluppo di applicazioni per il controllo di elettronica di consumo (televisori, lavatrici,etc.) OAK èla base di un ambiente adatto ad applicazioni su Internet che si iniziava a sviluppare: nel nasce Java. HotJavaèun browser in grado di eseguire applicazioni all interno delle pagine Web: le applet. NETSCAPE include un supporto per l esecuzioni di applet (Navigator 2) che da un forte impulso allo sviluppo di Java 7

8 Risultati: tecnologia versatile e diffusa, sistemi di controllo, cellulari, internet, smartcard, processori dedicati Le versioni di JAVA si identificano con quelle della JDK (Java DevelopmentKit), che contiene la JRE (Java RunTimeEnvironment) per l esecuzione dei programmi. Esiste una JDK per ciascuno dei sistemi che supportano JAVA (windows,linux, ecc) 8

9 Cronologia 9

10 Caratteristiche di Java Orientato agli oggetti Interpretato - Indipendente dall architettura Orientato ad Internet Sicuro Robusto Concorrente Dinamico Di crescente efficienza Gratuito 10

11 Java èinterpretato/indipendente dall architettura Il bytecodejava èinterpretato dalla JVM (per questioni di efficienza viene spesso convertita in linguaggio macchina del JustInTime compiler) Esistono JVM per moltissime piattaforme (vari sistemi operativi/cellulari/sistemi industriali ecc) 11

12 Java e internet Un grosso sviluppo di java si èavuto proprio grazie ad internet, alla possibilitàdi veicolare le applicazioni nella rete (applet), o di generare creare applicazioni web (Servlet), ed alle caratteristiche di portabilità del bytecode 12

13 Java sicurezza e robustezza Le applicazioni java sono eseguite all interno della JVM, senza l uso dei puntatori (accessi alla memoria macchina) Java fornisce: un forte controllo dei tipi controllo dei limiti di un array Java gestisce in maniera controllata gli errori in fase di esecuzione con le eccezioni (NO CRASH) 13

14 Java linguaggio concorrente Java è un linguaggio concorrente: Segmenti di programma (thread) possono essere eseguiti separatamente ed indipendentemente. I thread si spartiscono il tempo di esecuzione del processore, ma possono essere eseguiti anche parallelamente (dipende dai processori) I thread possono essere sincronizzati 14

15 Java linguaggio dinamico I moduli che compongono un applicazione vengono messi insieme (linkati) solo a run-time In questo modo è possibile cambiare un componente dell applicazione senza dover ricompilare il tutto I moduli possono essere aggiunti dinamicamente: quando un programma ne fa richiesta 15

16 Java e OOP Java èun potente linguaggio orientato agli oggetti, con l ambizione di essere semplice eliminando alcune insidie di altri linguaggi (per es. senza puntatori) che possono facilitare errori. Obbiettivi Sicurezza e velocità di sviluppo 16

17 La programmazione orientata ad oggetti Nella programmazione ad oggetti i programmi vengono scomposte in componenti autonome (oggetti), che rappresentano le diverse entità del problema affrontato, e che interagiscono secondo modalità prestabilite 17

18 Ambizioni della programmazione ad oggetti Nei programmi complessi e di grandi dimensioni acquistano importanza alcuni aspetti del lavoro Modularità del codice Assemblaggio dei componenti Efficienza nel testing Efficienza nel mantenimento del software La programmazione ad oggetti offre una risposta a ciascuna di queste esigenze 18

19 Principi generali della programmazione ad oggetti Incapsulamento Le classi nascondono il più possibile l implementazione, esponendo il minimo necessario per utilizzarle. In questo modo è possibile disciplinare anche le modifiche al codice, con interventi mirati EreditarietàNuovi tipi di oggetti possono essere creati come estensioni di tipi giàesistenti (riutilizzo del codice) PolimorfismoE possibile ottenere piùversioni per di una funzione per operare su tipi diversi 19

20 Gli oggetti Un oggetto è una entità del problema da risolvere, caratterizzata dalle VARIABILI membro che descrivono lo stato di un oggetto (e possono essere oggetti a loro volta), e dai METODI, ovvero le azioni che possono riguardare l oggetto, modificarne lo stato, ecc. es: un conto corrente possiede: nome, numero, saldo, (variabili) operazioni: addebito, accredito, chiusura 20

21 Le classi Le classi sono la definizione di un modello (il tipo) di un oggetto che definisce tutte le caratteristiche ed i comportamenti comuni agli oggetti di quel tipo. Un oggetto èuna istanza di una classe Tutti gli oggetti della stessa classe possono differire per il proprio stato. 21

22 Le classi e gli oggetti offrono un approccio naturale alla richiesta di modularitànei programmi, organizzazione del codice in librerie (di classi), per la loro riutilizzabilità favorire anche il mantenimento del software 22

23 I programmi JAVA Compilando il programma con il comando javacsi ottengono tanti file.class per quante sono le classi definite. Per eseguire un programma Java si invoca l interprete con parametro il nome della classe che contiene il metodo main(). public static void main ( String args[] ) L interprete esegue il metodo main() fino a che questo termina. 23

24 Struttura di una classe class NomeClasse { <variabile1>;... <variabilen>; tiporestituito metodo1(listaparametri) { <corpo del metodo>; }... tiporestituito metodon(listaparametri){ <corpo del metodo>; } } 24

25 I modificatori di accesso public Le variabili ed i metodi public possono essere accedute da qualunque altra classe (appartengono alla interfaccia) private Gli elementi private NON sono visibili all esterno della classe. Le sottoclassi non possono accedere agli elementi dichiarati private in una superclasse. Per la modifica degli elementi privati si ricorre a metodi pubblici get set, per ottenere un livello di incapsulamento e di protezione protected Gli elementi protected sono visibili alle classi ereditate Per default, se non viene specificato alcun modificatore, l accesso èconsentito solo nell ambito dello stesso pacchetto (package). 25

26 Il modificatore static static modificatore per metodi e variabili di classe Le variabili staticsono anche dette variabili di classe, e sono comuni a tutti gli oggetti istanza della stessa classe; esiste una sola copia comune a tutte le istanze. Se un oggetto modifica il valore di una variabile static, gli altri oggetti vedranno il valore modificato. In questo modo le istanze delle classi possono comunicare tra loro, o si puo definire uno stato globale comune a tutte le istanze 26

27 Metodi static I metodi dichiarati static(detti metodi di classe) possono essere richiamati indipendentemente dall esistenza di un istanza della classe I metodi staticpossono accedere alle variabili della classe che sono dichiarate anch esse static. In generale: I metodi di utilitàgenerale e che non agiscono sulle singole istanze, dovrebbero essere dichiarati static anche per questioni di efficienza 27

28 Il modificatore final Da una classe dichiarata finalnon possono essere create delle sottoclassi Il valore di una variabile dichiarata final(per convenzione MAIUSCOLA) non può essere cambiato (è una costante) Un metodo dichiarato final non può essere ridefinito dalle sottoclassi Il modificatore finalblocca l implementazione o il valore di classi, metodi o variabili final oltre a disciplinare l architettura delle classi, ne aumenta l efficienza (il compilatore puosostituire alla chiamata di un metodo final il codice stesso) 28

29 Altri modificatori abstract per metodi e classi astratte syncronized e volatile per i thread nativeper creare metodi che fanno riferimento a dll o librerie di sistema 29

30 L ereditarietà Nella programmazione orientata agli oggetti le classi sono organizzate in una gerarchia In Java ogni classe ha una superclasse (classe che la precede nella gerarchia) e può avere una o piùsottoclassi (classi che la seguono nella gerarchia) Classe A Classe B Classe C Classe C 30

31 L ereditarietàaumenta la riusabilitàdel codice in quanto il codice comune alle classi non viene ripetuto (è racchiuso nella classe padre) La manutenzione del codice risulta semplificata: eventuali aggiunte comuni possono essere poste nelle classe padre 31

32 Il polimorfismo Oggetti diversi possono definire operazioni con lo stesso nome void elaboraoggetto( TipoOggetto oggetto ) {. oggetto.azione( );. } Al momento della compilazione non ènoto il tipo effettivo dell oggetto passato. Il codice della funzione azione viene determinato solo a run-time, quando elaboraoggettoviene chiamato con un particolare argomento. 32

33 Creazione degli oggetti/riferimenti Oggetto A=new Oggetto( ); Oggetto B; B=a; La prima istruzione dichiara la variabile A come un riferimento ad un nuovo oggetto di tipo Oggetto La seconda dichiara la variabile B come un riferimento ad un oggetto di tipo Oggetto(non viene allocata memoria per nessun oggetto) La terza fa si che A e B riferiscano lo stesso oggetto 33

34 Il costruttore Il costruttore èun metodo speciale di una classe che consente di creare ed inizializzare nuovi oggetti Il metodo costruttore ha sempre lo stesso nome della classe e puo prevedere una lista di parametri; il costruttore non restituisce nessun parametro NomeClasse(listaParametri) {...} Il costruttore non restituisce nessun valore (neanche void) Una classe può non avere il costruttore dichiarato ( in questo caso èimplicito e fornito dalla classe padre: tutti gli oggetti ereditano implicitamente da java.lang.object), oppure uno o piu metodi costruttore esplicitamente dichiarati 34

35 La distruzione degli oggetti In Java non esistono i distruttori (presenti nel C++) il GarbageCollector, che opera in un threaddi sistema, si occupa di liberare la memoria dagli oggetti non piùutilizzati Un oggetto viene rimosso quando non ci sono più riferimenti che puntano a tale oggetto (si puo accelerare il meccanismo ponendo uguale a null) Se si definisce il metodo finalizedi una classe, questo viene invocato prima della sua distruzione 35

36 this e super this all interno di una classe, èil riferimento all oggetto corrente esempi t=this.x Assegna a t il valore della variabile istanza x dell oggetto corrente this.metodoa(this) Chiama il metodo metodoa e gli passa come argomento un riferimento all oggetto corrente return this ritorna un riferimento all oggetto corrente Con la sintassi this( ) èpossibile invocare un altro costruttore all interno di un costruttore super fa riferimento alla superclasse dell oggetto corrente 36

37 I Package Un package èun insieme di classi correlate tra loro per funzionalità e scopo Con i package èpossibile introdurre una classificazione logica delle classi e si possono evitare il conflitto tra i nomi di classi Anche le classi di sistema di Java sono organizzate in Package Per default sono visibili quelle del package java.lang 37

38 Con l organizzazione in package, tutte le variabili, le classi che fanno parte di un package possono essere identificate con il nome completo, evitando problemi di omonimia con altri moduli (prelevati anche da remoto, come nelle intenzioni di java) Il nome completo di una variabile o un metodo è composto <nome del package>.<nome della classe>.<nome membro> application.graphics.imageeditor.resize() Package 38

39 Ogni classe (o interfaccia) viene compilata in un file separato avente lo stesso nome della classe e l estensione.class I file.classcontenenti il bytecodesono contenuti in una directory il cui nome èlo stesso delle componenti del package <nome del package>/<nome della classe>.class La variabile di ambiente CLASSPATH contiene i percorsi dove JAVA va a reperire i file.class 39

40 La nominazione dei package La nominazione dei package segue una regola simile a quella dei nomi di dominio di Internet che evita che organizzazioni distinte producano package con lo stesso nome Ad esempio: it.unina.corsolinguaggiii.applications.graphics.i mageeditor.resize() I nomi che cominciano con java e sunsono riservati 40

41 Per inserire una classe all interno di un package, il file sorgente java deve iniziare con la dichiarazione package NOME_DEL_PACKAGE; La classe deve trovarsi in una directory che rispetta la struttura del package azienda.application.graphic; It/azienda/application/graphic/nomeClasse.java Se non si specifica il package di una classe,questa viene inserita in un package di default senza nome 41

42 Per utilizzare una classe di un altro package ènecessario far riferimento al suo nome completo java.util.vector vet=new java.util.vector(); Col comando importsi possono importare direttamente le classi da un package, senza far riferimento al nome completo singola classe: import java.util.vector; tutte le classi di un package import java.util.*; 42

43 LE classi dichiarate un package hanno livello di visibilità package, sono visibili da tutte le classi del package (ma non dei sottopackage). Le classi dichiarate public possono invece essere importate dall esterno del package 43

44 Il modificatore abstract Con il modificatore abstract si possono fissare dei comportamenti comuni alle sottoclassi, analogamente alle classi virtuali pure del C++ public abstract class Forma {... } Le classi astratte NON possono essere Istanziate direttamente 44

45 Le classi astratte possono contenere metodi astratti, ovvero costituiti solo esclusivamente dalla loro signature, senza implementazione L implementazione del corpo di un metodo astratto èfornita dalle sottoclassi della classe astratta. Con i metodi e le classi astratte si stabiliscono degli indirizzi di implementazione, lasciando alla sottoclassi il compito di specializzare i comportamenti 45

46 public abstract class Forma { protected double x,y; public void dovesei() { System.out.println( Le mie coord sono: +x+, +y); } public abstract double area(); } class Cerchio extends Forma{ protected double raggio; public Cerchio(double r){ raggio=r; } public double area() { return(raggio*raggio*3.1415); } } 46

47 Le interfacce Una interfaccia èuna classe non istanziabile che stabilisce quali metodi devono obbligatoriamente avere le sue estensioni (controparti delle classi virtuale pure c++) I metodi dell interfaccia non hanno implementazione, ma una interfaccia ma può contenere campi, che sono implicitamente static e final(costanti) 47

48 Esinterfaccia package geometria; public interface Misurabile { public static final double PI=3.1415; double duerad=1.4142; public abstract double area(); double perimetro(); } 48

49 L implementazione delle interfaccia Un classe che implementa una interfaccia realizza concretamente i metodi dell interfaccia class Quadrato implements Misurabile{ protected double lato; public Quadrato(double l){ lato=l; } public double area() { return(lato*lato); } public double perimetro() { return(lato*4); } } 49

50 Con le interfacce èpossibile introdurre il concetto di ereditarietàmultipla che in JAVA non èpossibile realizzare direttamente (per questioni di semplicità) Un interfaccia può essere associata ad una qualunque classe per dotarla di un comportamento non ereditato dalla superclasse Una classe può implementare un numero qualsiasi di interfacce class Mela extends Frutta implements Commestibile,Vendibile, 50

51 Due interfacce possono avere lo stesso metodo con la stessa segnatura (basta implementarne uno) Un interfaccia può essere definita come estensione di un altra (extends) public interface InterfacciaA extends InterfacciaB { } La gerarchia delle interfacce gode dell ereditarietàmultipla public interface InterfacciaA extends InterfacciaB, InterfacciaC { } InterfacciaAcontiene tutte le definizioni di metodi e di costanti di InterfacciaB ed InterfacciaC 51

52 Le Eccezioni Java offro lo strumento delle eccezioni per gestire gli errori in fase di esecuzione dei programmi e non bloccare l esecuzione Al verificarsi di un errore Java solleva un eccezione automaticamente (RuntimeException), trasferisce il controllo dal punto in cui l'eccezione èstata lanciata (throw) ad un punto che può essere specificato dall'utente, dove l'eccezione viene catturata (catch). (eventualmente fino alla fine del main) 52

53 Nel package java.langsi sono principali classi che definiscono i tipi standard di eccezioni ArithmeticException es. divisione per zero: inti = 12 / 0 ; NullPointerException- accesso ad un oggetto non ancora istanziato. NegativeArraySizeException- un array di dimensione negativa. ArrayIndexOutOfBoundException-accesso ad un elemento dell arrayfuori dalla dimensione definita. E possibile definire qualsiasi categoria di eccezione, derivando dalla classe Exception. 53

54 Alcune istruzioni possono sollevare delle eccezioni checkedo verificate, che devono per forza essere gestite, ovvero il compilatore ci obbliga a inglobare queste eccezioni nei blocchi try catch. Es. FileNotFoundException, istruzioni esplicite Throw In generale le checkedexceptionrappresentano un stato di malfunzionamento, in qualche modo prevedibile e recuperabile. Es. FileNotFoundException Altre eccezioni (unchecked) non possono essere prevedibili, come ArrayIndexOutOfBoundException, ed in generale, le runtimeexceptione le su sottoclassi. Si originano in conseguenza di bachi del programma che non possono essere recuperabili a runtime 54

55 Blocchi try catch try { } catch ( tipo_di_eccezione e1) { } catch ( altro_tipo_di_eccezione e2) { } Se nessun metodo gestisce l eccezione lanciata, si arriva al main(); se neanche il metodo main() cattura l eccezione, il programma termina in modo anomalo. Un blocco catch sulla generica eccezioni Exception cattura tutte le eccezioni catch (Exception e) { } e.printstacktrace(system.err); 55

56 Blocchi finally try { } catch (Exception e) { } finally { /* il codice nel blocco finally viene eseguito in uscita da blocco try o in corrispondenza di una eccezione, dopo aver eseguito il codie del blocco catch */ } 56

57 Eccezioni -gerarchia Java.lang.Throwable Java.lang.Error Java.lang.Exception java.lang.runtimeexception NoSuchMethodException Java.lang.IOException ClassNotFoundException NullPointerException ArrayIndexOutOfBoundException InterruptIOException EOFException FileNotFoundException 57

58 Nella classe Throwable sono definiti la variabile message e il metodo getmessage catch( Tipo_Exception e) { e.getmessage(); } Si possono creare eccezioni derivando da altre eccezioni (almeno Exception) public class MyException extends Exception { } public class AnotherException extends MyException { } Si possono creare e lanciare eccezioni direttamente, tramite throw: try { if ( i < 0 ) throw new MyException(); } catch (MyException e) { System.out.println( e.tostring() ); }} -> MyException 58

59 I tipi base void boolean char byte short int float double conversioni implicite byte -> short, short-> int, int-> float, float-> double, char-> int Possibili perdite di informazioni inti = ; floatf = i; 59

60 I riferimenti in Java In Java le variabili che denotano un oggetto sono in realtàriferimenti ad oggetti, NON CONTENGONO L INTERO OGGETTO, ma solo il suo indirizzo L analogia con i puntatori del C++ èlimitata. Per semplicitànon esiste l aritmetica dei puntatori, i puntatori di puntatori, i puntatori a funzione. Java prevede solo il passaggio per valore: sia i tipi base che i riferimenti sono passati per valore. Si passa una copia della variabile di tipo base o del riferimento all oggetto. 60

61 Esempio: determinare l output del programma class A { int i; A(int a) { i = a; } void show() { System.out.println("sono A, i:" + i); } } class Test { public static void changea(a a) { System.out.println(a); a.i=100; a=null; } public static void main(string args[]) { A s = new A(1); System.out.println(s+" i:"+s.i); changea(s); s.show(); }; } 61

62 Output i:1 sono A, i:100 62

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

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

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

Gestione delle Eccezioni

Gestione delle Eccezioni Gestione delle Eccezioni Condizioni di Errore Una condizione di errore in un programma può avere molte cause Errori di programmazione Divisione per zero, cast non permesso, accesso oltre i limiti di un

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

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it Programmazione II Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 30/09/2011 1/46 Programmazione II Lezione 4 30/09/2011 Sommario 1 Esercitazione 2 Panoramica della Programmazione Ad Oggetti 3

Dettagli

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

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

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio

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

Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe prencipe@di.unipi.it. È qualcosa che abbiamo già visto varie volte

Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe prencipe@di.unipi.it. È qualcosa che abbiamo già visto varie volte Java riutilizzo delle classi G. Prencipe prencipe@di.unipi.it Introduzione Una delle caratteristiche fondamentali in Java è il riutilizzo del codice Ci sono due modi per ottenerlo Creare oggetti di classi

Dettagli

Introduzione al linguaggio Java. Applicazioni ed Applets: come scriverli e farli girare. Caratteristiche originali e differenze con C / C++.

Introduzione al linguaggio Java. Applicazioni ed Applets: come scriverli e farli girare. Caratteristiche originali e differenze con C / C++. Introduzione al linguaggio Java Cosa c è di nuovo in Java? Java ed Internet. Applicazioni ed Applets: come scriverli e farli girare. Caratteristiche originali e differenze con C / C++. Dove trovare informazioni?

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

Corso di Laurea in Informatica e Comunicazione Digitale. a.a. 2006-2007. Interazione Uomo-Macchina. Introduzione a Java.

Corso di Laurea in Informatica e Comunicazione Digitale. a.a. 2006-2007. Interazione Uomo-Macchina. Introduzione a Java. Corso di Laurea in Informatica e Comunicazione Digitale a.a. 2006-2007 Interazione Uomo-Macchina Introduzione a Java Seconda Parte Irene Mazzotta Giovanni Cozzolongo Vincenzo Silvetri 1 Richiami: Java

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

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

Programmazione Java Avanzata Concetti su Java

Programmazione Java Avanzata Concetti su Java Programmazione Java Avanzata Concetti su Java Ing. Giuseppe D'Aquì Testi di Riferimento Java ( R. Liguori, P. Liguori), O'Reilly Hops Tecniche Nuove (2008) Java Virtual Machine Il codice scritto in Java

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 Paradigma OO Incapsulamento Polimorfismo e Overloading Ereditarietà e Overriding Esercizi svolti Esercizi proposti Paradigma OO Le

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

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

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

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

!#$%&&'()#*%+%+!#$',,'()#*%+ -)%*&'&'+'$.)+-$$%&&) !#$%&&'(%)'*+%,#-%#.'%&'#/0)-+#12+3,)4+56#7+#.')8'9 !"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se

Dettagli

Introduzione a Classi e Oggetti

Introduzione a Classi e Oggetti Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Il meccanismo dell ereditarietà a.a. 2008/2009 Claudio De Stefano 1 L ereditarietà consente di definire nuove classi per specializzazione o estensione di classi preesistenti,

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

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

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

Gestione di errori e situazioni eccezionali. Gestione delle eccezioni. Gestione tradizionale di errori e situazioni eccezionali (2)

Gestione di errori e situazioni eccezionali. Gestione delle eccezioni. Gestione tradizionale di errori e situazioni eccezionali (2) Gestione di errori e situazioni eccezionali Gestione delle eccezioni Una procedura (utente o di libreria) deve poter segnalare l impossibilità di produrre un risultato significativo o la propria terminazione

Dettagli

Parola chiave extends

Parola chiave extends Il Linguaggio Java Ereditarietà Ereditarietà L'ereditarietà permette di creare nuove classi sulla base di classi esistenti In particolare, permette di riusare il codice (metodi e campi); aggiungere nuovi

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

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

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone

R. Focardi 2002 Laboratorio di Ingegneria del Software Slide 1. Applicazioni = programmi stand-alone Il linguaggio Java Nato nel maggio 95 (James Gosling & al.) Orientato ad oggetti, basato sulle classi, concorrente Fortemente tipato: distinzione chiara tra errori statici ed errori dinamici Ad alto livello:

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

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

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

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

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.

Dettagli

Introduzione alla Progettazione per Componenti

Introduzione alla Progettazione per Componenti Introduzione alla Progettazione per Componenti Alessandro Martinelli 6 ottobre 2014 Obiettivo del Corso Il Progetto Software Reale Il Componente Software La Programmazione Ad Oggetti Fondamenti di Informatica

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

Programmazione di sistemi distribuiti

Programmazione di sistemi distribuiti Programmazione di sistemi distribuiti I Sistemi Distribuiti, per loro natura, prevedono che computazioni differenti possano essere eseguite su VM differenti, possibilmente su host differenti, comunicanti

Dettagli

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Introduzione Il meccanismo dell eredità consente di sfruttare delle relazioni tipo/sottotipo, ereditando attributi

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

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

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

Scope e visibilità per classi

Scope e visibilità per classi Scope e visibilità per classi Packages Classi interne nelle loro diverse forme Interne / statiche / locali Utilizzo congiunto con interfacce Implementazione di iteratori Gestione di eventi Packages Package:

Dettagli

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 15 - Packages Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

Dettagli

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 12 JDBC + Cosa vediamo nella lezione di oggi Oggi analizzeremo insieme una specifica tecnologia Java per l accesso e la manipolazione di basi di dati relazionali

Dettagli

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore Relazioni tra oggetti e classi : Generalizzazione Fondamenti di Informatica II 20. Laboratorio 6 Collegamenti e associazioni Le relazioni di tipo generalizzazione (specializzazione), servono per poter

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

Tipi fondamentali di documenti web

Tipi fondamentali di documenti web Tipi fondamentali di documenti web Statici. File associati al web server il cui contenuto non cambia. Tutte le richieste di accesso conducano alla visualizzazione della stessa informazione. Dinamici. Non

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

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

Programmare in Java. Olga Scotti

Programmare in Java. Olga Scotti Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale

Dettagli

Sviluppo Applicazioni Mobile Lezione 11. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 11. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 11 + Credits I lucidi di questa lezione sono stati preparati da: Professor Stefano Mizzaro Professor Paolo Coppola e sono stati modificati e completati dal Dr. Paolo

Dettagli

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 14 - Packages Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

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 Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Programmazione Object Oriented in Java

Dettagli

UML Diagrammi delle classi. UML Diagramma classi 1

UML Diagrammi delle classi. UML Diagramma classi 1 UML Diagrammi delle classi UML Diagramma classi 1 Diagramma delle classi Non è nei nostri obiettivi affrontare UML nel suo complesso Ci concentreremo sui diagrammi delle classi che ci forniscono un linguaggio

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

I metodi statici -1. Variabili statiche Vogliamo assegnare a ciascuncontoun numeroidentificativo diverso. I metodi statici -2

I metodi statici -1. Variabili statiche Vogliamo assegnare a ciascuncontoun numeroidentificativo diverso. I metodi statici -2 I metodi statici -1 I metodi statici non hanno il parametro implicito il metodo sqrt di Math I metodi statici vengono detti anche metodi di classe perche` non operano su una particolare istanza della classe

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

Corso Android Corso Online Sviluppo su Cellulari con Android

Corso Android Corso Online Sviluppo su Cellulari con Android Corso Android Corso Online Sviluppo su Cellulari con Android Accademia Futuro info@accademiafuturo.it Programma Generale del Corso di Sviluppo su Cellulari con Android Programma Base Modulo Uno - Programmazione

Dettagli

Object Oriented Programming

Object Oriented Programming OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in

Dettagli

Informatica 3. Informatica 3. LEZIONE 6: Il controllo dell esecuzione. Lezione 6 - Modulo 1. Errori durante l esecuzione. Il controllo dell esecuzione

Informatica 3. Informatica 3. LEZIONE 6: Il controllo dell esecuzione. Lezione 6 - Modulo 1. Errori durante l esecuzione. Il controllo dell esecuzione Informatica 3 Informatica 3 LEZIONE 6: Il controllo dell esecuzione Modulo 1: La gestione delle eccezioni Modulo 2: Programmazione concorrente Lezione 6 - Modulo 1 La gestione delle eccezioni Politecnico

Dettagli

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA

Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Oggetto: MASTER DI ALTA FORMAZIONE PROFESSIONALE IN PROGRAMMATORE JAVA PARTECIPAZIONE GRATUITA Salerno Formazione, società operante nel settore della didattica, della formazione professionale e certificata

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

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione

Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione Libreria standard Java possiede un enorme libreria di classi standard organizzata in vari package che raccolgono le classi secondo un organizzazione basata sul campo d utilizzo. I principali package sono:

Dettagli

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

Introduzione alla programmazione Java. Dott. Ing. M. Banci, PhD Introduzione alla programmazione Java Dott. Ing. M. Banci, PhD Obiettivi del corso Creare, compilare, e eseguire programmi Java Tipi di dato primitivi Flusso di controllo Java Metodi Arrays Introduzione

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

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

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Programmazione in Java (I modulo) Lezione 3: Prime nozioni Programmazione in Java (I modulo) Lezione 3: Prime nozioni La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per

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

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

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

Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010

Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Reflection in Java 1 Reflection Riflessione

Dettagli

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it Java Remote Method Invocation -- RMI G. Prencipe prencipe@di.unipi.it RMI RMI è una tecnologia JAVA che permette a una JVM di comunicare con un altra JVM per farle eseguire metodi È possibile che oggetti

Dettagli

SOMMARIO INTRODUZIONE...XV CAPITOLO 1: PRESENTAZIONE...1 CAPITOLO 2: FONDAMENTI DI JAVA...39

SOMMARIO INTRODUZIONE...XV CAPITOLO 1: PRESENTAZIONE...1 CAPITOLO 2: FONDAMENTI DI JAVA...39 sommario 24-06-2004 10:18 Pagina V SOMMARIO INTRODUZIONE.......................................XV CAPITOLO 1: PRESENTAZIONE.......................................1 1.1 Introduzione...2 1.2 L organizzazione

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

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

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona

Programmazione per Bioinformatica Il Calcolatore e la Programmazione. Dr Damiano Macedonio Università di Verona Programmazione per Bioinformatica Il Calcolatore e la Programmazione Dr Damiano Macedonio Università di Verona Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macrocomponenti:

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

Primi programmi in Java. Lezione IV

Primi programmi in Java. Lezione IV Primi programmi in Java Lezione IV Scopo della lezione Realizzare dei semplici programmi scritti in Java. Esercitarsi nelle operazioni necessarie per passare dalla scrittura di codice Java all esecuzione

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

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

JAVA INTRODUZIONE C++ JDK e JRE API IDE (BLUEJ) JAVA Introduzione. Versioni e IDE DIAPOSITIVA 2 ALESSANDRO URSOMANDO

JAVA INTRODUZIONE C++ JDK e JRE API IDE (BLUEJ) JAVA Introduzione. Versioni e IDE DIAPOSITIVA 2 ALESSANDRO URSOMANDO JAVA JAVA Introduzione INTRODUZIONE C++ JDK e JRE API IDE (BLUEJ) Cross Platform Web Dinamico Versioni e IDE DIAPOSITIVA 2 1 JAVA La programmazione orientata agli oggetti JAVA La programmazione OOP Nascita

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

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti di Informatica www.mimmocorrado.it 1

Appunti di Informatica www.mimmocorrado.it 1 Installare Java Il programma può essere scaricato dal seguente indirizzo: http://www.java.com/it/download/windows_ie.jsp?locale=it&host=www.java.com Per installare la JDK è necessario: 1. scaricare il

Dettagli

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; } Java è un linguaggio di programmazione c indipendente dalla piattaforma, ovvero un linguaggio di programmazione che permette di compilare i programmi una volta sola e di installarli su computer che usano

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server Versione 30.5.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/: applicazioni 1 La logica dei socket Abbiamo visto che un applicazione client si connette

Dettagli

Programmazione ad Oggetti Modulo A (Esame del 11/9/2015)

Programmazione ad Oggetti Modulo A (Esame del 11/9/2015) Programmazione ad Oggetti Modulo A (Esame del 11/9/2015) Esercizio 1 Considerate la seguente gerarchia di classi: class A { public void print(string s) { System.out.println(s); public void m1() { print("a.m1");

Dettagli

Main System Monitor Keyboard

Main System Monitor Keyboard Composite 57 8. Composite (Gof pag. 163) 8.1. Descrizione Consente la costruzione di gerarchie di oggetti composti. Gli oggetti composti possono essere conformati da oggetti singoli, oppure da altri oggetti

Dettagli

Fondamenti di programmazione in Java. Lezione III

Fondamenti di programmazione in Java. Lezione III Fondamenti di programmazione in Java Lezione III Scopo della lezione Descrivere gli strumenti che utilizzeremo nel resto del corso per sviluppare programmi in java UltraEdit Java SDK Imparare a scrivere

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:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015 Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle

Dettagli

Corso Programmazione Java Android. Programma

Corso Programmazione Java Android. Programma Corso Programmazione Java Android Programma 1.1 Obiettivo e modalità di fruizione L obiettivo del corso è di fornire le conoscenze tecniche e metodologiche per svolgere la professione di Programmatore

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

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

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

Dettagli