Corso di Telematica II A.A CdL in Ingegneria Informatica CdL in Ingegneria delle Telecomunicazioni e dell Automazione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Corso di Telematica II A.A. 2006-2007. CdL in Ingegneria Informatica CdL in Ingegneria delle Telecomunicazioni e dell Automazione"

Transcript

1 CdL in Ingegneria Informatica CdL in Ingegneria delle Telecomunicazioni e dell Automazione Corso di Telematica II A.A di 140

2 A.A Storia di Java Nel 1991 Sun Microsystems avviò un progetto, chiamato Green, per sviluppare software per dispositivi a microprocessore per l elettronica l di consumo (set-top top box, palmari, elettrodomestici, ) Il prodotto di questo progetto fu un linguaggio che il suo creatore, James Gosling,, chiamò Oak. Successivamente fu ribattezzato Java Dato che il mercato dell elettronica elettronica di consumo non si sviluppò nei modi previsti, Sun decise di orientare il suo nuovo linguaggio alla creazione c di pagine web dinamiche Nel Maggio 1995 Sun annunciò ufficialmente il nuovo linguaggio Java, J che fu supportato dal browser Netscape Navigator Attualmente Java, giunto alla seconda edizione, viene utilizzato oltre che per creare pagine web dinamiche ed interattive (applet), per applicazioni aziendali (J2EE), per estendere i web server (servlet), per programmare rammare cellulari e palmari (J2ME) 2 di 140

3 A.A Il linguaggio Java General-purpose Object oriented Strongly-typed typed Concurrent Platform-independent (write once, run everywhere ) 3 di 140

4 A.A Sviluppo di un applicativo Java bytecode javac Hello World! Virtual Machine Operating System 4 di 140

5 A.A La piattaforma Java 5 di 140

6 A.A Versioni di Java J2SE Java 2 Standard Edition Applicazioni desktop J2EE Java 2 Enterprise Edition Applicazioni server J2ME Java 2 Micro Edition Applicazioni per Smartphone/PDA Javacard Applicazioni per smartcard 6 di 140

7 A.A Tipologia di applicazioni Java Applicazioni stand-alone alone Applicazioni in grado di girare autonomamente,, senza l ausilio l di altri ambienti Applet Applicazioni integrate in una pagina web Servlet Applicazioni eseguite da un application server (Tomcat, BEA Weblogic, ) Midlet Applicazioni eseguite su un dispositivo mobile (palmare, cellulare, ) 7 di 140

8 A.A Object Oriented Programming (OOP) Il mondo reale è fatto di oggetti : persone, animali, piante, automobili, aerei, computer, Ciascun oggetto è caratterizzato da: attributi o proprietà (dimensione, forma, colore, peso, ) comportamenti o metodi (un bambino piange, dorme, cammina; una automobile accelera, frena, sterza) 8 di 140

9 A.A Oggetti software La progettazione orientata agli oggetti modella gli oggetti del mondo reale Un oggetto è una specifica entità del dominio del problema da modellare caratterizzata da: identità comportamento stato Un programma può essere pensato come costituito da un insieme di oggetti che interagiscono tra di loro allo scopo di risolvere un problema 9 di 140

10 A.A Esempi di oggetti Ferrari F430 Cilindrata: 43 Potenza: 490 Stato: spento Accendi() Spegni() Accelera() Porsche 911 Carrera Cilindrata: 3596 Potenza: 325 Stato: acceso Accendi() Spegni() Accelera() 10 di 140

11 A.A Classi Oggetti che hanno le stesse caratteristiche e lo stesso comportamento possono essere raggruppati in classi. I membri di una classe condividono gli stessi metodi,, ma ciascun membro ha un proprio stato. 11 di 140

12 A.A Esempio di classi ed istanze Automobile Cilindrata: int Potenza: int Stato: boolean Accendi() Spegni() Accelera() istanzia Porsche 911 Carrera: : Automobile Cilindrata: 3596 Potenza: 325 Stato: acceso Accendi() Spegni() Accelera() 12 di 140

13 A.A Interfaccia Si può pensare ad un oggetto come provider di servizi Le richieste che possono essere fatte ad un oggetto sono definite dalla sua interfaccia Il codice per soddisfare la richiesta, insieme ai dati nascosti, rappresenta l implementazione 13 di 140

14 A.A Esempio di interfaccia Automobile richieste implementazione interfaccia Accendi() Spegni() Accelera() Frena() Sterza() 14 di 140

15 A.A Information hiding Secondo il paradigma OOP i programmatori possono essere suddivisi in due categorie: Creatori di nuove classi Utilizzatori di classi esistenti L obiettivo dei creatori di nuove classi deve essere quello di rendere nota solamente l interfaccia l agli utilizzatori, nascondendo l implementazione In questo modo il creatore della classe può modificare l implementazione, senza che gli utilizzatori debbano cambiare il loro codice 15 di 140

16 A.A Riutilizzo del codice Una volta che è stata creata e testata, una classe rappresenta una unità di codice utile alla risoluzione di un problema Il modo più semplice di riutilizzo è la composizione : si definisce un oggetto di una classe come membro di un altra classe Automobile Motore Cambio 16 di 140

17 A.A Ereditarietà Quando è necessario specializzare il comportamento di una classe, aggiungendone delle funzionalità,, si può ricorrere all ereditarietà Automobile Coupè Cabriolet 17 di 140

18 A.A Ereditarietà (2) La classe derivata (o sottoclasse) eredita le caratteristiche ed il comportamento della classe base (o superclasse) Automobile Accendi() Spegni() Accelera() Cabriolet Accendi() Spegni() Accelera() ApriCapote() ChiudiCapote() 18 di 140

19 A.A Diagramma di sequenza Ferrari F430 MotoreV8 CambioF1 tempo Folle() Accendi() InserisciMarcia() Accelera() regime:int StaccaFrizione() 19 di 140

20 A.A OOP in Java Java è un linguaggio object oriented che consente di implementare un sistema progettato secondo i metodi dell Object Oriented Design (OOD) In linguaggi procedurali come il C, l unitl unità di programmazione è la funzione In Java l unitl unità di programmazione è la classe,, da cui possono essere istanziati oggetti 20 di 140

21 A.A Il primo programma Java /* * file : Hello.java * scopo: visualizzare un messaggio */ /** * Questa classe visualizza un messaggio di benvenuto. * */ public class Hello { /** * metodo di avvio dell applicazione. * args argomenti passati tramite la linea di comando */ public static void main(string[] args) { } } // stampa un messaggio a video System.out.println( Hello world! ); 21 di 140

22 A.A Commenti Su una singola linea // questo è un commento su una linea singola Su linee multiple /* commento su linee multiple */ Javadoc /** commento usato per generare la documentazione con javadoc */ 22 di 140

23 A.A JavaDoc JavaDoc nacque come strumento interno utilizzato dai ricercatori della Sun che stavano lavorando alla creazione del linguaggio Java e delle sue librerie la grande mole di sorgenti fece pensare alla creazione di un tool per la generazione automatica di documentazione HTML la creazione e manutenzione di un gran numero di pagine web richiese l'aiuto di un sistema automatico per la gestione dei riferimenti incrociati fra classi e gli inevitabili errori di battitura JavaDoc nacque quindi per permettere ai programmatori di inserire dei frammenti HTML nei commenti (ignorati quindi dal compilatore) con le prime versioni si potevano inserire le descrizioni di ogni i classe e dei suoi metodi, nonché il significato dei parametri e delle variabili membro 23 di 140

24 A.A JavaDoc (2) /** * descrizione della classe * autore versione */ public class DocTest { /** descrizione dell attributo */ public int i; } /** * descrizione del metodo * nome_parametro descrizione valore di ritorno */ public void f(int p1) Descrizione Nome dello sviluppatore classe e/o metodo destinati a scomparire in future versioni eccezione generata da un metodo collegamento ipertestuale a documentazione locale e non parametri di un metodo (richiesto per ogni parametro) valori di ritorno di un metodo (non va usato per metodi o costruttori che restituiscono void ) associazione a un altro metodo o classe data di aggiunta di un metodo a una classe sinonimo introdotto in Javadoc 1.2 numero di versione di una classe o un metodo 24 di 140

25 A.A Coding style I nomi delle classi devono iniziare con una lettera maiuscola Metodi, variabili, attributi devono iniziare con una lettera minuscola I nomi composti vengono dichiarati secondo la convenzione CamelCase : le parole vengono riportate per esteso in minuscolo, una di seguito all altra, altra, utilizzando un carattere maiuscolo come lettera iniziale di ogni parola NomeClasse nomevariabile nomemetodo() 25 di 140

26 A.A La keyword class Ogni programma Java consiste di almeno una classe Per definire una nuova classe si usa la keyword class: public class Hello { Lo specificatore public indica che la classe è visibile dall esterno Il codice va salvato in un file con lo stesso nome della classe ed estensione.java 26 di 140

27 A.A Il metodo main Un applicazione Java comincia l esecuzione l dal metodo chiamato main La definizione di questo metodo deve essere: public static void main(string String[] args) public indica che il metodo è visibile dall esterno. I metodi statici si possono richiamare senza creare un istanza della classe: Classe.metodoStatico.metodoStatico(); La keyword void indica che il metodo non restituisce alcun valore in output Segue (tra parentesi tonde) la lista dei parametri accettati dal metodo: in questo caso un array di stringhe Per Per adoperare adoperare il il metodo metodo di di una una classe classe occorre occorre sempre sempre istanziarla. istanziarla. Questa Questa può può essere essere una una limitazione limitazione per per alcune alcune procedure procedure che che si si limitano limitano a a ricevere ricevere un un input input e e produrre produrre un un output, output, senza senza che che debba debba essere essere memorizzato memorizzato uno uno stato stato (funzioni). (funzioni). E E possibile possibile dichiarare dichiarare metodi metodi in in modo modo che che non non richiedano richiedano una una istanza istanza per per essere essere utilizzati: utilizzati: si si tratta tratta dei dei metodi metodi statici statici 27 di 140

28 A.A Metodo di stampa a video Per stampare un messaggio a video, si usa l oggetto l predefinito System.out,, che permette la stampa a video di messaggi Per richiamare un metodo di un oggetto si usa la notazione puntata (dot notation): oggetto.metodo(); System.out ha il metodo println() che stampa un messaggio a video, andando a capo System.out.println( Hello world! ); 28 di 140

29 A.A Compilazione ed esecuzione Per compilare il file Hello.java: javac Hello.java Se non viene dato nessun messaggio d errore, d verrà creato il corrispondente file.class Per eseguire il programma: java Hello 29 di 140

30 A.A Tipi di dato primitivi Interi Reali Caratteri Booleani byte short float double int long 30 di 140

31 A.A Range dei tipi di dato Tipo Dim (bit) Min Max boolean char 16 Unicode 0 Unicode byte short int long float * *10 38 double * * di 140

32 A.A Operatori aritmetici Operazione Java Operatore Espressione algebrica Espressione Java Addizione + a+b a+b Sottrazione - p-c p-c Moltiplicazione * bm b*m Divisione / x/y x/y Modulo % r mod s r%s Autoincremento ++ x=x+1 x++ Autodecremento -- x=x-1 x-- 32 di 140

33 A.A Operatori relazionali Operatore Significato Esempio < <= Minore di Minore o uguale a a < b a <= b > <= Maggiore di Maggiore o uguale di a > b a >= b ==!= Uguale Diverso a == b a!= b 33 di 140

34 A.A Operatori logici Operatore Significato Esempio && And logico (x<a) && (x>b) Or logico (x<0) (x>c)! Not logico!x 34 di 140

35 A.A Operatori sui bit Operatore Significato Esempio & And bit a bit a&0x01 Or bit a bit a 0x01 ~ Not (complemento a 1) ~x ^ Xor bit a bit a^0x01 << Shift a sinistra x<<8 >> Shift a destra x>>8 35 di 140

36 A.A Istruzioni Java Istruzione Dichiarativa Imperativa Semplice Strutturata assegnazione continue blocco iterativa return break condizionale 36 di 140

37 A.A Istruzioni dichiarative Dichiarazione di variabile: tipo nomevar [=val]; int numerocilindri; float cilindrata = f; Dichiarazione di costante: final tipo NOMECOSTANTE = val; final double RAGGIO = 3.0; 37 di 140

38 A.A Istruzioni semplici Assegnazione var = valore; raggio = 2.0f; var = espressione; Espressioni Variabili Costanti Operatori area = PI*raggio*raggio; areatriangolo = (base*altezza)/2; 38 di 140

39 A.A Condizioni booleane Rappresentano il risultato di espressioni più o meno complesse Producono un risultato di tipo vero/falso Si possono usare tutti gli operatori relazionali e logici Esempi: (x>=10 && x<=100) (X==7 x==8) 39 di 140

40 A.A Istruzione condizionale if if(condizione) istruzione; if(condizione) istruzione1; else istruzione2; if(condizione1) istruzione1; else if(condizione2) istruzione2; else if(condizione3) istruzione3; else istruzione4; istruzione può essere sia una singola istruzione che un blocco di istruzioni, racchiuse tra parentesi graffe 40 di 140

41 A.A Istruzione condizionale switch switch(espressione) { case val_1: istruz_1_a; istruz_n_a; break; case val_n: istruz_1_b; istruz_n_b; break; } default: istruz_1_d; istruz_n_d; break; L espressione deve essere di uno dei seguenti tipi: long, int, byte, short, char 41 di 140

42 A.A Istruzioni iterative while while(espr_booleana) istruzione L istruzione viene eseguita ripetutamente finché l espressione booleana risulta vera (ciclo a condizione iniziale) do-while do istruzione while(espr_booleana); L istruzione istruzione viene eseguita almeno una volta, mentre con while può non essere mai eseguita (ciclo a condizione finale) istruzione può essere sia una singola istruzione che un blocco di istruzioni, racchiuse tra parentesi graffe 42 di 140

43 A.A Istruzioni iterative (2) for for(init; boolean_expr; step) istruzione Prima della prima iterazione viene eseguita l istruzione l di inizializzazione; quindi viene effettuato il test sulla condizione booleana; se è vera viene eseguita l istruzione l e quindi l istruzione l step; altrimenti l esecuzione l passa all istruzione successiva al for (cicli( enumerativi) Esempio: for(int i=0; i<100; i++) System.out.println( n= n= +i); 43 di 140

44 A.A Metodi I metodi consentono di rendere modulare un programma Vantaggi della modularizzazione: Manutenibilità Riutilizzo del codice Compattezza (si evitano ripetizioni di frammenti di codice) 44 di 140

45 A.A Dichiarazione di un metodo outputtype nome(type1 param1,type2 param2,,typen paramn) { istruzione1; istruzionen; } return outputval; param1,param2, paramn paramn sono detti parametri formali Il tipo speciale void indica che il metodo non restituisce alcun valore 45 di 140

46 A.A Chiamata di un metodo Un metodo può essere richiamato solo in riferimento ad un dato oggetto, usando la seguente sintassi: nomeoggetto.nomemetodo(arg1,arg2, (arg1,arg2,, argn); int x = a.fa.f(); Spesso, nel gergo dell OOP, ci si riferisce alla chiamata di un metodo di un oggetto nel senso di inviare un messaggio ad un oggetto 46 di 140

47 A.A Passaggio dei parametri by value Il valore del parametro attuale viene copiato nel corrispondente parametro formale. Qualsiasi modifica ai parametri formali non altererà il valore dei parametri attuali public void m1() { int a=5; m2(a); System.out.println(a); } public void m2(int i) { i=10; } Per default tutte le variabili dei tipi primitivi (int( int,, float, )) vengono passate by value 47 di 140

48 A.A Passaggio dei parametri by reference Il metodo chiamato ha la possibilità di accedere direttamente ai dati del chiamante ed eventualmente modificarli public void m1() { int[] a=new int[5]; a[0]=1; m2(a); System.out.println(a[0]); } public void m2(int[] i) { i[0]=10; } Per default tutti gli array e gli oggetti vengono passati by reference erence 48 di 140

49 A.A Array Un array è una struttura dati composta da elementi dello stesso tipo Dichiarazione: tipo[] nome = new tipo[dim]; Esempio: int[] vett = new int[10]; L operatore new alloca la memoria per l array 49 di 140

50 A.A Gestione della memoria Viene utilizzato l operatore l new per allocare memoria per un oggetto La pulizia della memoria da oggetti non più utilizzati viene svolta automaticamente dal Garbage Collector della JVM Non appena la memoria scende al di sotto di una certa soglia, viene invocato il Garbage Collector, che va in cerca di tutti gli oggetti non più referenziati e li distrugge, liberando la memoria da essi occupata 50 di 140

51 A.A Gestione della memoria(2) Prima dell intervento del Garbage Collector: Dopo l intervento l del Garbage Collector: 51 di 140

52 A.A Inizializzazione di un array E possibile inizializzare un array con una lista di valori: int n[] = {1,2,3,4,5}; Per default gli elementi degli array dei tipi primitivi sono inizializzati a 0 oppure false per i boolean La lunghezza di un array è memorizzata nell attributo length: dim = n.lentgh; 52 di 140

53 A.A Stringhe Vengono gestite dalla classe String Questa classe ha ben 9 tipi di costruttori, qui vengono mostrati i più comuni: String s = new String(); String s = new String( hello hello ); String s1 = new String(s); String s2 = Ciao ; I I costruttori costruttori sono sono metodi metodi speciali speciali chiamati chiamati quando quando viene viene creata creata una una nuova nuova istanza istanza di di classe classe e e servono servono ad ad inizializzare inizializzare lo lo stato stato iniziale iniziale dell oggetto. dell oggetto. Questi Questi metodi metodi hanno hanno lo lo stesso stesso nome nome della della classe classe di di cui cui sono sono membro membro e e non non restituiscono restituiscono nessun nessun tipo. tipo. Se Se una una classe classe non non è è provvista provvista di di costruttore, costruttore, Java Java ne ne utilizza utilizza uno uno speciale speciale di di default default senza senza caratteristiche caratteristiche specifiche. specifiche. Dal Dal momento momento che che il il linguaggio linguaggio garantisce garantisce la la chiamata chiamata al al costruttore costruttore ad ad ogni ogni instanziazione instanziazione di di un un oggetto, oggetto, un un costruttore costruttore scritto scritto correttamente correttamente garantisce garantisce che che tutti tutti i i dati dati membro membro vengano vengano inizializzati. inizializzati. 53 di 140

54 A.A Metodi per la manipolazione di stringhe int length() restituisce il numero di caratteri componenti boolean equals(string s2) confronta due stringhe int indexof(string s2) ricerca la sottostringa s2, restituendone l indice l oppure -11 se questa non è presente String substring(int int beginindex,int int endindex) estrae una sottostringa di indici iniziali e finali beginindex,endindex endindex 54 di 140

55 A.A Tipi di dato astratto (ADT) Implementiamo, tramite una classe, un nuovo tipo di dato per memorizzare il tempo nel formato HH:MM:SS import java.text.decimalformat; public class Time1 { Definire Definire un un ADT ADT significa significa specificare: specificare: private int hour; 1. private int minute; 1. Nome Nome dell ADT dell ADT 2. private int second; 2. Costruttori: Costruttori: insieme insieme delle delle modalità modalità con con cui cui definire definire (creare) (creare) i i valori valori dell ADT public Time1() { dell ADT 3. settime(0,0,0); 3. Funzioni: Funzioni: insieme insieme delle delle signature signature } di di funzioni funzioni (operatori) (operatori) usate usate per per manipolare manipolare i i valori valori dell ADT dell ADT public void settime(int int h,int m,int s) { Assiomi Assiomi hour = (h>=0 && h<24)? h : 0; regole regole per per definire definire il il minute = (m>=0 && m<60)? m : 0; significato significato (semantica) (semantica) delle delle second = (s>=0 && s<60)? s : 0; funzioni funzioni } sono sono regole regole di di riscrittura, riscrittura, trasformazione trasformazione public String tostring() { DecimalFormat twodigits = new DecimalFormat( ); } } return twodigits.format(hour) + : + twodigits.format(minute) + : +twodigits.format(second)+(hour<12? +twodigits.format(second)+(hour<12? AM : PM ); 55 di 140

56 A.A Modificatori di accesso Gli attributi o i metodi dichiarati con la keyword public sono accessibili da ogni parte del programma Gli attributi o i metodi dichiarati con la keyword private sono accessibili solo da metodi della stessa classe: private int hour; private int minute; E buona norma di progettazione dichiarare private tutti gli attributi di una classe, permettendo l accesso l tramite degli appositi metodi; in questo modo si può controllare la validità dei valori da assegnare agli attributi 56 di 140

57 A.A Costruttore E uno speciale metodo che ha lo stesso nome della classe ed è privo del valore di ritorno Ha lo scopo di inizializzare gli attributi di un oggetto durante la fase di creazione public class Punto { double x,y; }; public Punto(double x0,double y0) { x=x0; y=y0; } Viene invocato quando si crea un oggetto tramite l operatore l new Punto p1 = new Punto(1.0,-1.5); 1.5); 57 di 140

58 A.A Overloading All interno di una classe è possibile definire più volte un metodo con lo stesso nome, in modo da adeguarlo a contesti di utilizzo differenti Due metodi possono avere lo stesso nome a patto di: Avere lo stesso tipo di ritorno Differire per numero e tipo dei parametri formali Il costruttore non è altro che un metodo, quindi è possibile fare overloading: public Time1(int int h) { settime(h,0,0); } public Time1(int int h,int m) { settime(h,m,0); } 58 di 140

59 A.A Creazione di oggetti Per poter utilizzare la classe Time1,, creiamo un altra classe TimeTest: public class TimeTest { } public static void main(string args[]) { Time1 time = new Time1(); time.settime(13,27,6); System.out.println( Time: +time.tostring()); } 59 di 140

60 A.A Creazione di oggetti (2) Per creare un nuovo oggetto della classe Time1: Time1 time = new Time1(); L operatore new alloca la memoria per il nuovo oggetto della classe Time1. Quindi richiama il costruttore della classe Time1 per inizializzarne gli i attributi. Infine collega l oggetto appena creato con il reference time Digitando: Time1 time; si crea un reference ad un oggetto di classe Time1, che non è collegato a nessun oggetto. Di conseguenza se si prova a richiamare un metodo, si riceverr iceverà un messaggio d errore 60 di 140

61 A.A Metodi set/get Gli attributi privati di una classe possono essere manipolati solo da metodi della stessa classe Per assegnare un valore ad un attributo, o per ottenerne il valore, si creano dei metodi pubblici, chiamati rispettivamente setattributo(), getattributo(); ad esempio: public void sethour(int h) { hour = (h>=0 && h<24)? h : 0; } public int gethour() { return hour; } 61 di 140

62 A.A Composizione Una forma di riutilizzo del codice è la composizione, in cui una classe ha come attributi dei reference ad oggetti di altre classi Esempio: public class AlarmClock { private Time1 alarmtime; in questo caso la classe AlarmClock ha come attributo un oggetto della classe Time1 62 di 140

63 A.A This reference Ogni oggetto ha accesso ad un reference a se stesso, chiamato this,, tramite il quale si può accedere sia agli attributi che ai metodi Esempio: public class Time1 { int hour,minute,second; } public Time1(int int hour,int minute,int int second) { this.hour = hour; this.minute = minute; this.second = second; } i nomi dei parametri sono uguali a quelli degli attributi. Si usa a il reference this per riferirsi a questi ultimi 63 di 140

64 A.A Attributi statici Ciascun oggetto di una data classe ha una propria copia degli attributi Ci sono casi in cui si vuole che una sola copia di un attributo sia condivisa tra tutte le istanze della classe In questo caso si dichiara tale attributo statico : static int count; Attraverso Attraverso la la parola parola riservata riservata static static è è possibile possibile specializzare specializzare alcune alcune proprietà proprietà o o metodi metodi appartenenti appartenenti ad ad una una classe. classe. In In particolare, particolare, se se una una proprietà proprietà è è preceduta preceduta dalla dalla parola parola static, static, tale tale proprietà proprietà (il (il suo suo valore) valore) si si intenderà intenderà come come una una proprietà proprietà di di classe classe e e non non solo solo di di una una determinata determinata istanza istanza di di essa. essa. Una Una eventuale eventuale modifica modifica al al valore valore di di una una proprietà proprietà di di classe classe verrebbe verrebbe automaticamente automaticamente avvertita avvertita da da tutte tutte le le istanze istanze esistenti esistenti di di tale tale classe. classe. Analogamente, Analogamente, un un metodo metodo static static è è considerato considerato un un metodo metodo appartenente appartenente ad ad una una classe. classe. 64 di 140

65 A.A Package Un package è una collezione di classi I principali benefici derivanti dall uso di package sono: Riutilizzo del codice Garantiscono l unicitl unicità del nome di una classe Con il JDK vengono forniti una serie di package per le funzionalit ità più comuni: I/O, grafica, networking,, suono, 65 di 140

66 A.A Creazione di un package Aggiungere prima della dichiarazione di una classe: package it.poliba.sisinflab; Compilare con: javac d d. Time1.java L opzione d dice al compilatore di creare le directory specificate nel nome del package a partire da quella corrente. In questo caso sarà creata una directory it,, contenente la directory poliba,, contenente sisinflab che conterrà il file Time1.class 66 di 140

67 A.A Visibilità a livello package Nella dichiarazione di attributi o di classi, se non si specifica a nén public né private, la visibilità è da intendersi a livello di package Esempio: package it.poliba.prova; class Prova { int nome; } in questo caso la classe Prova e il suo attributo nome sono visibili solo dalle altre dello stesso package 67 di 140

68 A.A Uso di un package Per poter utilizzare le classi contenute in un package in un altra classe esterna a tale package, si usa la keyword import: import it.poliba.sisinflab.*; questa istruzione importa tutte le classi del package specificato 68 di 140

69 A.A Classpath Il compilatore Java cerca le classi da linkare: prima in quelle standard fornite insieme al J2SDK poi nella directory ext di tale Software Development Kit infine nei percorsi specificati tramite la variabile d ambiente d classpath Per default la variabile classpath contiene solo la directory corrente. Se si devono usare package contenuti in altre directory, si deve aggiungere il percorso a tale variabile d ambiente: d CLASSPATH=c: c:\mypackages; 69 di 140

70 A.A File jar Quando un applicazione Java è composta da molte classi, è possibile raggruppare i files.class in un archivio compresso, di estensione.jar In ogni archivio jar è presente un file chiamato MANIFEST.MF che contiene informazioni sul contenuto dell archivio Il file MANIFEST è un file di testo composto da coppie attributo-valore, ad esempio: Manifest-version: 1.0 Created-By: NetBeans IDE Main-class: ServerMain Per creare un archivio si usa il comando jar: jar cvmf MANIFEST.MF archivio.jar input-files Un Un Integrated Integrated Development Development Environment Environment (IDE), (IDE), in in italiano italiano ambiente ambiente integrato integrato di di sviluppo, sviluppo, (anche (anche Integrated Integrated Design Design Environment Environment o o Integrated Integrated Debugging Debugging Environment) Environment) è è un un software software che che aiuta aiuta i i programmatori programmatori nello nello sviluppo sviluppo del del software. software. Normalmente Normalmente consiste consiste in in un un editor editor di di codice codice sorgente, sorgente, un un compilatore compilatore e/o e/o un un interprete, interprete, un un tool tool di di building building automatico automatico e e (solitamente) (solitamente) un un debugger. debugger. 70 di 140

71 A.A File jar Opzione c t u x [nomefile[ nomefile] f v Descrizione Crea un archivio nuovo o vuoto aggiungendovi i file. Se uno qualsiasi dei nomi indicati è una directory questa viene elaborata in modo ricorsivo Visualizza il contenuto dell archivio Aggiorna un file jar esistente Estrae i file. Se se ne indicano i nomi vengono estratti solo i file corrispondenti Specifica il nome del file jar come secondo argomento del comando. Se manca questo flag,, il comando jar riporta il risultato nell output standard (se si sta creando un file.jar)) oppure legge dall input standard (se si sta estraendo o visualizzando un file.jar) Genera un output verboso m 0 Memorizza senza compressione Aggiunge un manifest ad un file.jar. Ogni archivio ha un manifesto predefinito, ma si può anche indicare un proprio manifesto se si vuole autenticare il contenuto dell archivio M I C Non crea un file di manifesto per queste voci Crea un file indice Cambia temporaneamente la directory di destinazione 71 di 140

72 A.A Ereditarietà E una forma di riutilizzo del software in cui una nuova classe viene creata a partire da una esistente, ereditandone gli attributi ed i metodi, ed aggiungendone di nuovi, per specializzarne il comportamento Il vantaggio è che non è necessario disporre del codice sorgente di una classe per poterla estendere 72 di 140

73 A.A Superclasse e sottoclasse Classe base (superclasse): public class Biciclo { public void sterza() {}; public void frena() {}; public void avvia() {}; } private Color colore; Classe derivata (sottoclasse): public class Ciclomotore extends Biciclo { public accendimotore() {}; } private String targa; private float cilindrata; 73 di 140

74 A.A Gerarchia di classi 74 di 140

75 A.A Membri protected Gli attributi e i metodi di una classe dichiarati con lo specificatore catore di accesso protected sono visibili soltanto dalle sue sottoclassi public ClasseBase { protected int attr1; } public ClasseDerivata extends ClasseBase { } public ClasseDerivata() { attr1=0; } 75 di 140

76 A.A Costruttori nelle classi derivate Quando viene istanziato un oggetto di una classe derivata, deve essere richiamato il costruttore della superclasse per inizializzare zare gli attributi ereditati Per default viene richiamato il costruttore standard della superclasse Se si vuole specificare un particolare costruttore, si usa la keyword super: super(x,y (x,y); 76 di 140

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

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

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

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 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

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

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

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

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

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

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. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 3. Alfonso Miola Settembre 2007

Programmazione Java. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 3. Alfonso Miola Settembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 3 Programmazione Java Alfonso Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Programmazione Java 1 Contenuti

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

Outline. Programmazione ad oggetti in Java. La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori

Outline. Programmazione ad oggetti in Java. La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori Programmazione ad oggetti in Java Daniela Micucci Outline La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori 2 Programmazione ad oggetti in Java 1 OOP Java

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

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

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

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

Introduzione alla programmazione in Java

Introduzione alla programmazione in Java Introduzione alla programmazione in Java 1 Programmare ad oggetti La programmazione come attività di creazione di modelli. I concetti di classe, oggetto e scambio di messaggi. Un primo esempio di programma

Dettagli

Un primo programma Java. Introduzione alla programmazione in Java. Programmi e mondo reale. Programmare ad oggetti. I programmi come modelli

Un primo programma Java. Introduzione alla programmazione in Java. Programmi e mondo reale. Programmare ad oggetti. I programmi come modelli 4 Un primo programma Java Introduzione alla programmazione in Java class Program1 { System.out.println("Benvenuti al corso"); 1 5 Programmi e mondo reale Programmare ad oggetti Il codice di un programma

Dettagli

Le command line di Java

Le command line di Java Le command line di Java Esercitazioni di Programmazione 2 Novella Brugnolli brugnoll@science.unitn.it Ambiente di lavoro Per compilare ed eseguire un programma Java abbiamo bisogno di: The JavaTM 2 Platform,

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

2 - Introduzione al linguaggio Java

2 - Introduzione al linguaggio Java 2 - Introduzione al linguaggio Java 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

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

Telematica II 2. Introduzione al JAVA

Telematica II 2. Introduzione al JAVA Concetto di portabilità tradizionale (p.e. linguaggio C/C++) Telematica II 2. Introduzione al JAVA codice C/C++ Compilatore (Linux) Eseguibile (Linux) Linux Compilatore (Pentium) Eseguibile (Win32) Windows

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

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

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

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Da JavaScript a Java Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Da JavaScript a Java Versione 3.4.05 Per la prima lezione in aula e la prima esercitazione in laboratorio 1 Da JavaScript a Java

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

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

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

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

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

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

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

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

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

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

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

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

un programma Java 2.1 Scrittura, compilazione ed esecuzione

un programma Java 2.1 Scrittura, compilazione ed esecuzione 2 Scrivere ed eseguire un programma Java Contenuto 2.1 Scrittura, compilazione ed esecuzione 2.2 La compilazione 2.3 L esecuzione 2.4 I package e la direttiva import 2.5 Cosa può andare male? 2.6 Esercizi

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

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

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio QUEUE : considerazioni QUEUE : considerazioni Si è realizzata una struttura dati complessa utilizzandone una primitiva, l array. Il pregio di tale implementazione è il basso costo computazionale, mentre

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

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

Linguaggio Java e il paradigma della programmazione ad oggetti

Linguaggio Java e il paradigma della programmazione ad oggetti Linguaggio Java e il paradigma della programmazione ad oggetti Marco La Cascia Aula Magna Ingegneria 26/11/2015 Outline Introduzione ai paradigmi di programmazione Storia di Java Introduzione a Java Componenti

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

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

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

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented Informatica Prof. A. Longheu Introduzione ai Linguaggi Object-Oriented 1 Generalità programmazione OO La programmazione ad oggetti è un particolare modo di scrivere il programma. Si prevede che: 1) si

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 Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E01 Esempi di programmi A. Miola Ottobre 2011 1 Contenuti Vediamo in questa lezione alcuni primi semplici esempi di applicazioni

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

La programmazione: tradizionale vs Orientata agli Oggetti (OOP)

La programmazione: tradizionale vs Orientata agli Oggetti (OOP) La programmazione: tradizionale vs Orientata agli Oggetti (OOP) In generale, nella soluzione di un problema si individuano dati e funzionalità (azioni) potendola implementare, a livello più semplice, in

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

Iprogrammi scritti in Java sono formati da Classi che

Iprogrammi scritti in Java sono formati da Classi che Capitolo 3. Pesci e Animali Domestici Le Classi di Java Translated by Francesco Orciuoli Iprogrammi scritti in Java sono formati da Classi che rappresentano gli oggetti del mondo reale. Sebbene le persone

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

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

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

Eclipse. Avviare un progetto e compilare un semplice programma

Eclipse. Avviare un progetto e compilare un semplice programma Eclipse Avviare un progetto e compilare un semplice programma Descrizione di Eclipse Eclipse è un ambiente di sviluppo che facilita la scrittura ed il debug di programmi java Permette di: Scrivere il codice

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

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

1. I FONDAMENTI DELLA PROGRAMMAZIONE AD OGGETTI

1. I FONDAMENTI DELLA PROGRAMMAZIONE AD OGGETTI IL LINGUAGGIO JAVA Dispense per il corso di laboratorio di sistemi I.T.I.S. ABACUS A.S. 2008/2009 Autore: Roberto Amadini Testo di riferimento: La programmazione ad oggetti C++ Java (Lorenzi, Moriggia,

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

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

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/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

Connessione ad internet

Connessione ad internet Introduzione al C++ Connessione ad internet Istruzioni per la connessione internet: - una volta connessi, aprire un browser (firefox) - in Modifica/preferenze/avanzate/rete/impostazioni - attivare la modalità

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

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

3. La sintassi di Java

3. La sintassi di Java pag.9 3. La sintassi di Java 3.1 I tipi di dati statici In Java, come in Pascal, esistono tipi di dati statici predefiniti e sono i seguenti: byte 8 bit da -128 a 127 short 16 bit coincide con l integer

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

Le motivazioni, che guidarono lo sviluppo di Java, erano quelle di creare un linguaggio semplice e familiare. Esso è

Le motivazioni, che guidarono lo sviluppo di Java, erano quelle di creare un linguaggio semplice e familiare. Esso è JAVA Introduzione Java è un linguaggio di alto livello e orientato agli oggetti, creato dalla Sun Microsystem nel 1995. Le motivazioni, che guidarono lo sviluppo di Java, erano quelle di creare un linguaggio

Dettagli

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

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili 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

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca)

LAVORI ESTIVI DI INFORMATICA PER LA CLASSE IV Sez. Ainf (Prof. Tessore Luca) Ministero dell Istruzione, dell Università e della Ricerca Istituto Tecnico Industriale Statale Enrico Mattei Via Martiri di Cefalonia 46-20097 San Donato Milanese Tel. 0255691411 - Fax 025276676 itisando@tin.it

Dettagli

Rappresentazione delle informazioni

Rappresentazione delle informazioni Rappresentazione delle informazioni Rappresentazione delle informazioni L informatica si occupa di rappresentare ed elaborare informazioni diverse: numeri caratteri audio immagini video I caratteri: ASCII

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

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

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Appunti sulla documentazione di un progetto software object oriented in linguaggio Java

Appunti sulla documentazione di un progetto software object oriented in linguaggio Java Appunti sulla documentazione di un progetto software object oriented in linguaggio Java Marco Liverani Luglio 2006 1 Introduzione Ogni progetto informatico è sicuramente incompleto fino a quando non viene

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

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File 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

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA1 1.3 - Le strutture di controllo 1 Prerequisiti Istruzioni semplici Strutture di controllo Scittura di semplici applicazioni Java 2 1 Introduzione In molti casi le

Dettagli

Introduzione al linguaggio Java

Introduzione al linguaggio Java Introduzione al linguaggio Java Corso di Gestione della Conoscenza d Impresa Prof. Giovanni Semeraro Dott. Pasquale Lops Dipartimento di Informatica Università degli Studi di Bari A.A. 2006/2007 Credits

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

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi formativi Introdurre i principi del funzionamento di un elaboratore e della programmazione. Presentare gli approcci elementari alla soluzione di problemi (algoritmi)e al progetto di strutture

Dettagli

e l ambiente Info L 4 Le operazioni sui dati L 1 L ambiente di programmazione L 5 Le stringhe L 2 La struttura del codice

e l ambiente Info L 4 Le operazioni sui dati L 1 L ambiente di programmazione L 5 Le stringhe L 2 La struttura del codice 1La sintassi Java e l ambiente di sviluppo UNITÀ DI APPRENDIMENTO L 1 L ambiente di programmazione L 2 La struttura del codice L 3 Le variabili e i tipi primitivi L 4 Le operazioni sui dati L 5 Le stringhe

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

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

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

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

Unità B3 Strutture di controllo

Unità B3 Strutture di controllo (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: I/O su console Package Blocco di controllo Oggetto System.out Oggetto System.in Oggetto Tastiera Metodo readline() Strutture

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

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

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

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

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

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

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

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