Introduzione alla programmazione con linguaggio Java { Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F. Saba }

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Introduzione alla programmazione con linguaggio Java. 2004 { Dr. M. Carta, Ing. M. Ennas, Ing. S. Piras, Ing. F. Saba }"

Transcript

1 Introduzione alla programmazione con linguaggio Java

2 Note di Copyright Queste trasparenze (slide) sono coperte dalle leggi sul copyright. Testi grafica e immagini in essa contenuti sono di proprietà dei rispettivi autori: Dr. Maurizio Carta, Ing.. Mauro Ennas, Ing.. Stefano Piras e Ing.. Fabrizio Saba. Tali slide possono essere duplicate e riprodotte dalle scuole di ogni ordine e grado italiane o estere per applicazioni legate alla didattica e senza finalità di lucro. Ogni altra finalità o uso (ivi compresa la duplicazione su supporto magnetico, la trasmissione, la memorizzazione e la stampa totale o parziale) è vietata senza autorizzazione scritta da parte degli autori. Gli autori non si assumono nessuna responsabilità sulle informazioni contenute in queste slide che sono state realizzate per finalità meramente didattiche e sono aggiornate alla data riportata in calce. L intestazione a piè pagina deve comunque non essere alterata e deve sempre essere riportata anche in un utilizzo parziale del suddetto materiale.

3 Indice del corso Modulo 1: Introduzione Modulo 2: Sintassi Java Modulo 3: Oggetti e Classi Modulo 4: Features Modulo 5: Eccezioni Modulo 6: GUI Modulo 7: Extra

4 Modulo 1 Definizioni introduttive e concetti ricorrenti

5 In questo modulo Il processo di produzione del software Java Virtual Machine Garbage Collection Code Security Scrivere, compilare ed eseguire un applicazione Java Docs

6 Sintesi degli argomenti trattati Processi Waterfall Unified Model Concetti chiave dell OOP (programmazione orientata agli oggetti) Java Virtual Machine Code Security Garbage Collection Classi Oggetti: attributi e metodi

7 Processi Programmazione Java SDK 2.0

8 Processi Metodologia orientata agli oggetti È una tecnica do modellazione dei sistemi Descrive e modella i sistemi come una interazione tra oggetti correlati tra loro L interazione degli oggetti all interno del sistema è organizzata in classi La metodologia consiste di tre componenti Un processo Una notazione Un insieme di regole

9 Processi Metodologia orientata agli oggetti Un processo Attività passo passo, utilizzate come modello di progetto e sviluppo di software (esempio: Rational Unified Process) Una notazione Rappresentazione, spesso grafica, che descrive i sottosistemi che complessivamente costituiscono il sistema in esame e le loro interazioni Un insieme di regole Insieme di regole che descrivono come il sistema lavora

10 Processi Analisi e Progetto La fase di analisi focalizza la sua attenzione sui seguenti punti: 1. Stabilire una chiara visione sul problema economico (business view) 2. Identificare le fasi che il sistema deve attraversare nel funzionamento 3. Stabilire un vocabolario comune per descrivere il problema 4. Individuare la soluzione migliore al problema

11 Processi Analisi e Progetto La fase di progetto focalizza la sua attenzione sui seguenti punti: 1. Risolvere il problema 2. Identificare il come fare invece del cosa fare 3. Introdurre sistemi di supporto che permettano al sistema di lavorare 4. Definire ed implementare strategie per il sistema

12 Caratteristiche della OOP Oggetti e Classi Le caratteristiche principali della programmazione orientata agli oggetti sono rappresentate da oggetti e Classi Gli oggetti sono i mattoni mediante i quali si costruiscono sofisticati software nell OOP Le classi rappresentano il modo in cui devono essere realizzati gli oggetti

13 Caratteristiche della OOP Oggetti Sono singole entità, univocamente determinabili Vengono utilizzati come mattoni nel progetto di software Object Oriented Hanno identità, dati e comportamento Possono essere semplici o complessi Possono essere reali (appartenenti al mondo reale) o immaginari Hanno attributi e operazioni (detti metodi) Sono istanze dinamiche di una classe

14 Caratteristiche della OOP Classi La classe definisce un oggetto Tutti gli oggetti vengono creati a partire da una classe ossia sono istanze di una classe

15 Caratteristiche della OOP Caratteristiche principali dell OOP Astrazione Icapsulazione Associazione Aggregazione Composizione Ereditarietà Coesione ed accoppiamento Polimorfismo

16 Caratteristiche principali della OOP Astrazione (Abstraction) Astrazione Processo che ignorando i dettagli concentra la sua attenzione sulle caratteristiche essenziali di un oggetto o di un entità Semplifica le funzionalità e le informazioni Aiuta l utente ad interagire con gli oggetti

17 Caratteristiche principali della OOP Incapsulazione (Encapsulation) Incapsulazione Si riferisce al meccanismo di mascheramento dell informazione all interno di un oggetto Produce due visioni dell oggetto Una visione esterna: mostra cosa l oggetto è in grado di fare Una visione interna: spiega come è in grado di fare un determinato task

18 Caratteristiche principali della OOP Aggregazione (Aggregation) Aggregazione Si riferisce alla possibilità di definire un oggetto in termini di parti componenti È un tipo particolare di associazione Qualifica relazioni del tipo Come un

19 Caratteristiche principali della OOP Composizione (Composition) Composizione Si palesa quando un oggetto è contenuto in un altro È un tipo di associazione Qualifica la relazione di tipo Contenuto in

20 Caratteristiche principali della OOP Ereditarietà (Inheritance) Ereditarietà È il meccanismo attraverso il quale si definisce una nuova classe in termini di una classe esistente Viene qualificata dalla frase è un oppure un tipo di Permette di relazionare gruppi di classi in modo da permettere una loro gestione collettiva ed il loro utilizzo

21 Caratteristiche principali della OOP Ereditarietà (Inheritance) Animali Cani Gatti Uccelli

22 Caratteristiche principali della OOP Coesione ed Accoppiamento Coesione Misura quanto una classe o un gruppo di classi contribuisca ad un singolo obiettivo all interno di un sistema Accoppiamento Misura quanto due o più classi sono legate ad altre classi È anche una misura delle dipendenze fra oggetti

23 Caratteristiche principali della OOP Polimorfismo (Polymorphism) Il polimorfismo si riferisce a funzioni che possono essere applicate ad oggetti istanziati da classi diverse, per ottenere lo stesso risultato semantico Operazioni simili definite per più di una classe sono polimorfiche Si basa sull ereditarietà L implementazione di un metodo polimorfico dipende dall oggetto al quale è applicato

24 Caratteristiche principali della OOP Gerarchia di oggetti Veicoli Aerei Auto Sportive Utilitarie Cabriolet Formula 1

25 Metodi di sviluppo Sviluppo di processi Metodi tradizionali Processo a cascata Metodi unificati di sviluppo Unified Process

26 Metodi tradizionali di sviluppo Processo a cascata Metodi tradizionali Requirements Analysis Design Implementation Tempo Lo sviluppo viene completato in una esecuzione delle fasi sequenziale Ogni fase deve essere completamente eseguita e documentata prima di passare alla successiva; i problemi di implementazione si scoprono tardi ed è difficile intervenire Test

27 Metodi unificati di sviluppo OOA&D Process Metodi unificati di sviluppo Tipicamente si tratta un progetto come se si tratasse di tanti progetti parziali UML (Unified Modeling Language) è una notazione non un processo La Unified Software Development Process è iterativo ed incrementale

28 Metodi unificati di sviluppo Ciclo di vita del progetto La Unified Software Development Process è iterativo ed incrementale L iterazione si riferisce ad un passo nel ciclo di vita del progetto Il risultato dell interazione è una crescita del progetto Progetti di grosse dimensioni vengono scomposti in più progetti di dimensioni ridotte

29 Metodi unificati di sviluppo Ciclo di vita del progetto La Unified Software Development Process è iterativo ed incrementale Per ogni fase di sviluppo si deve: Selezionare ed utilizzare i casi di uso rilevanti Creare il progetto utilizzando l architettura scelta Implementare il progetto utilizzando componenti Verificare se i componenti soddisfano i casi d uso precedentemente individuati Quando l iterazione ha raggiunto il suo obbiettivo, lo sviluppo procede alla stadio sucessivo

30 Metodi unificati di sviluppo Fasi principali Fasi del ciclo iterativo e incrementale Inception Elanoration Costruction Transition Ogni ciclo presenta uno o più iterazioni Il completamento di ciascuna fase rappresenta una milestone

31 Metodi unificati di sviluppo Fasi del ciclo iterativo e incrementale Inizializzazione (inception) Lancio del progetto Stabilire un obbiettivo economico per il progetto Definire il problema in termini di bussines Individuare rischi critici Definire le finalità per chiarire il problema Documentare il Bussiness Problem

32 Metodi unificati di sviluppo Fasi del ciclo iterativo e incrementale Elaborazione (elaboration) Analisi e progetto di alto livello Stabilire l architettura di base del progetto Monitorare i rischi critici del progetto Creare un piano che supporti gli obbiettivi del progetto

33 Metodi unificati di sviluppo Fasi del ciclo iterativo e incrementale Costruzione (costruction) In questa fase tutto è teso a produrre miglioramenti progressivi nella costruzione del software

34 Metodi unificati di sviluppo Fasi del ciclo iterativo e incrementale Transizione (transiction) Introdurre il software ai clienti Completare il test della versione preliminare Implementare il tuning della prestazioni, dell utilizzazione e della soddisfazione da parte del cliente

35 Metodi unificati di sviluppo Flusso Flusso del ciclo iterativo ed incrementale Analisi iniziale dei requisiti Analisi Progetto Implementazione Testing Differenti iterazioni del flusso per realizzare differenti stati di approfondimento dei contenuti

36 Metodi unificati di sviluppo Flusso Requirements Tempo Feed Back Analysis Design Implementation Test

37 Metodi unificati di sviluppo Sviluppo iterativo del flusso 1 iterazione Requirements Analysis Design Implementation Test 2 iterazione Requirements Analysis Design Implementation Test 3 iterazione Requirements Analysis Design Implementation Test Tempo

38 Metodi unificati di sviluppo Benefici del flusso iterarivo Riduzione dei costi Migliore manutenzione e scheluding Migliore distribuzione dei tempi di lavoro di gruppo Migliore capacità di far fronte alle esigenze dei clienti utilizzatori

39 Concetti chiave dell OOP Programmazione Java SDK 2.0

40 Concetti chiave dell OOP Java Virtual Machine (JVM) Bytecode Il codice prodotto dalla compilazione e che dovrà essere digerito dalla JVM è compatto ed efficiente (ottimizzato): la maggior parte dei controlli di tipo vengono effettuati nel compilation time Esso risulta platform indipendent ossia il codice (programma.java) compilato produce un bytecode (programma.class) che può essere eseguito su una JVM di una piattaforma qualsiasi Uni*, linux, Windows, Mac-OS ) che soddisfi le Java Virtual Machine Specifications della Sun-Microsystems

41 Concetti chiave dell OOP Java Virtual Machine (JVM) Compilazione Sistema Run Time Hello.java CLASS LOADER Javac Hello.java LA RETE Esecuzione Hello.class HARDWARE

42 Concetti chiave dell OOP Sicurezza del codice (code security) Ambiente di esecuzione (runtime environment) Tre processi principali Caricare Il class loader carica tutte le classi necessarie per l esecuzione, separando lo spazio dei nomi locale da quello importato dalla rete! Verificare Tutto il codice viene rigorosamente verificato, prima di essere eseguito sulla macchina locale! Eseguire

43 Concetti chiave dell OOP Sicurezza del codice (code security) Class Loader I metodi locali vengono sempre caricati per primi (limita i cavalli di Troia) Bytecode verifier Rispetto delle specifiche della JVM Non ci devono essere violazioni di accesso I tipi dei parametri devono essere sempre corretti Non ci devono essere conversioni dei dati proibite (interi in reference ad esempio) Runtime Il codice viene eseguito se e solo se soddisfa i requisiti sopra indicati

44 Concetti chiave dell OOP Sicurezza del codice (code security) Compilazione Sistema Run Time Hello.java CLASS LOADER Javac Hello.java LA RETE Byte Code Verifier Interpreter JIT code generator Hello.class Runtime HARDWARE

45 Concetti chiave dell OOP Garbage collection Il meccanismo di deallocazione della memoria è automatico, non dipende dal programmatore! La deallocazione è a cura della JVM che esegue dei processi di verifica della memoria occupata e permette di marcare quella che può essere successivamente liberata Ciò limita la possibilità che una applicazione possa terminare involontariamente (crash) a causa di una impossibilità di allocazione di nuova memoria memory leaks La deallocazione dinamica ( garbage collection ) varia con l implementazione della JVM su piattaforme distinte

46 Concetti chiave dell OOP Concetti ricorrenti Variabile Classe Oggetto Attributi Metodi Erediterietà e polimorfismo Interfaccia e Package

47 Concetti chiave dell OOP Classe: modello di un oggetto Classe Modello di oggetto, contenente variabili e metodi che ne rappresentano il comportamento e gli attributi. Una classe può ereditare variabili e metodi da altre classi Metodo di classe Metodo definito in una classe; può essere richiamato tramite la classe oppure una delle sue istanze Istanza di una classe Equivale ad un oggetto; ogni oggetto è un istanza di una classe Metodo istanza Metodo definito in una classe, che agisce su un istanza della classe stessa. In generale, i metodi istanza sono chiamati semplicemente metodi

48 Concetti chiave dell OOP Oggetto: Istanza di una classe Variabile istanza Variabile che appartiene ad un istanza individuale, il cui valore è depositato in un istanza Interfaccia Collezione di specifiche astratte di comportamenti, che ogni classe può implementare individualmente Oggetto Istanza concreta di una classe. Oggetti diversi, istanze della stessa classe, accedono agli stessi metodi, ma portano spesso valori differenti nelle proprie variabili istanza Package Collezione di classi ed interfacce. Le classi dei package diversi da java.lang devono essere importate esplicitamente o richiamate con il nome completo del package

49 Concetti chiave dell OOP Variabili e tipi di dato Variabile istanza Definiscono gli attributi e lo stato di un oggetto Variabili di classe Le variabili di classe sono simili alle variabili di istanza ma si applicano a tutte le istanze di una stessa classe e alla classe stessa Variabili locali Sono dichiarate ed utilizzate nelle dichiarazioni di metodi, ad esempio per i contatori dei cicli, come valori temporanei, rilevanti solo all interno di uno stesso metodo (o di un blocco) la memoria occupata da una variabile locale viene liberata Diversamente da altri linguaggi, Java non possiede variabili globali, cioè variabili visibili (accessibili) da tutte le componenti del programma. Per comunicare dati globali si utilizzano variabili istanza e di classe.

50 Concetti chiave dell OOP Incapsulazione (incapsulation) L icapsulazione è il processo attraverso il quale si nascondono le parti interne dell implementazione di un oggetto, consentendo l accesso a quest ultimo soltanto attraverso un interfaccia definita

51 Concetti chiave dell OOP Incapsulazione (incapsulation) Package è il livello di protezione di default, significa che metodi e variabili sono accessibili a tutte le altre classi dello stesso package Protezione private significa che metodi e variabili sono accessibili soltanto ad altri metodi della stessa classe Protezione public significa che metodi e variabili sono accessibili a tutte le classi java Protezione protected significa che metodi e variabili sono accessibili a tutte le classi dello stesso package e alle sottoclassi esterne

52 Concetti chiave dell OOP Incapsulazione (incapsulation) Modificatore Stessa Classe Stesso package Sottoclasse Universo Public SI SI SI SI Protected SI SI SI Default SI SI Private SI Una variabile, un metodo o una classe hanno accessibilità di default se non hanno un modificatore di protezione esplicito come quelli indicati.

53 Concetti chiave dell OOP Ereditarietà (inheritance) L ereditarietà è il concetto della programmazione orientata agli oggetti in cui tutte le classi sono organizzate in una stretta gerarchia Ogni classe della gerarchia ha delle superclassi (classi che la precedono) e sottoclassi (classi che la seguono in gerarchia) Le sottoclassi ereditano attributi e comportamenti dalle loro superclassi

54 Concetti chiave dell OOP Polimorfismo (polymorphism) Il polimorfismo è l abilità di avere molte forme differenti Un oggetto ha una sola forma Una variabile è polimorfica perché riferisce oggetti di forme differenti Una reference ha più forme (può individuare oggetti di forma differente) public class Impiegato extends Object public class Manager extends Impiegato

55 Concetti chiave dell OOP Riusabilità del codice La programmazione in java è basata su moduli e componenti software le cui funzionalità ottimizzate possono essere utilizzate per realizzare più codici distinti che richiedono stesse funzionalità È buona norma realizzare codici che prevedano il riuso delle routine e degli algoritmi che vengono di volta in volta programmati, per permettere una più agile costruzione di codici con funzionalità simili migliorando così le performance di produzione software

56 Scrivere, compilare ed eseguire Compilare javac Hello.java Eseguire java Hello // // CiaoMondo.java CiaoMondo.java public public class class CiaoMondo CiaoMondo { { public static void main CiaoMondo (Sting args){ public static void main CiaoMondo (Sting args){ System.out.println( Ciao Mondo! ); System.out.println( Ciao Mondo! ); } } } }

57 Applicazioni java La prima application: HelloWorld // CiaoMondo.java public class CiaoMondo { public static void main CiaoMondo (Sting args){ //contenuto: System.out.println( Ciao Mondo! ); } } //fine della classe

58 Compilazione e running (1) Compilazione e running Compilazione di application e applet Sono necessari i file class della API java, disponibili gratuitamente nel sito: Installare JDK (Java Development Kit), edizione standard o enterprise: Java 2 SDK, Standard Edition (J2SE) Java 2 SDK, Enterprise Edition (J2SEE) In tal modo si avrà una directory del tipo C:/j2se1.4.1

59 Compilazione e running (2) Compilazione e running Nella sottodirectory c:/j2se/bin vi sono i comandi Per la compilazione si usa c:/j2se/bin/javac HelloWorld.java In assenza di errori la compilazione produce il file HelloWorld.class

60 Compilazione e running (3) Compilazione e running Compilazione di servlet Sono necessari i file class della API java per i servlet, disponibili gratuitamente nel sito: Installare JSDK (Java Servlet Development Kit) In tal modo si avrà una directory c:/jsdk2.1

61 Compilazione e running (4) Compilazione e running Compilazione di servlet La directory c:/jsdk2.1 contiene il file servlet.jar, che serve per compilare i servlet Il comando è: c:/j2se/bin/javac classpath c:/jsdk2.1/servlet.jar Aservlet.java

62 Compilazione e running (5) Compilazione e running Esecuzione (running) Di un applicazione C:/j2se/bin/java HelloWorld Di un applet C:/j2se/bin/appletviewer AnApplet.html oppure Collegamento all URL di AnApplet.html Di un servlet: Collegamento all URL di AServlet.html e interazione (con bottoni, campi di testo, ecc.)

63 Compilazione e running (6) Compilazione e running Per evitare di digitare il path completo di ogni comando, aggiungere c:/j2se/bin alla variabile d ambiente PATH In tal modo, il comando di compilazione diventa, ad esempio: prompt>javac C:/>javac

64 Java docs Application Programming Interface (API)

65 Grazie per l attenzione Domande?

66 Introduzione alla programmazione con linguaggio Java

67 Note di Copyright Queste trasparenze (slide) sono coperte dalle leggi sul copyright. Testi grafica e immagini in essa contenuti sono di proprietà dei rispettivi autori: Dr. Maurizio Carta, Ing.. Mauro Ennas, Ing.. Stefano Piras e Ing.. Fabrizio Saba. Tali slide possono essere duplicate e riprodotte dalle scuole di ogni ordine e grado italiane o estere per applicazioni legate alla didattica e senza finalità di lucro. Ogni altra finalità o uso (ivi compresa la duplicazione su supporto magnetico, la trasmissione, la memorizzazione e la stampa totale o parziale) è vietata senza autorizzazione scritta da parte degli autori. Gli autori non si assumono nessuna responsabilità sulle informazioni contenute in queste slide che sono state realizzate per finalità meramente didattiche e sono aggiornate alla data riportata in calce. L intestazione a piè pagina deve comunque non essere alterata e deve sempre essere riportata anche in un utilizzo parziale del suddetto materiale.

68 Indice del corso Modulo 1: Introduzione Modulo 2: Sintassi Java Modulo 3: Oggetti e Classi Modulo 4: Features Modulo 5: Eccezioni Modulo 6: GUI Modulo 7: Extra

69 Modulo 2 Sintassi del linguaggio Java

70 In questo modulo Il processo di produzione del software Java Virtual Machine Garbage Collection Code Security Scrivere, compilare ed eseguire un applicazione Java Docs

71 Sintesi degli argomenti trattati Sintassi di base Variabili di tipo primitivo Dichiarazione e definizione di variabili Convenzioni sui nomi di classi, variabili e metodi Casting Controllo del flusso: costrutti e operatori Costrutti Operatori Matrici e vettori Arrays Il package java.util: classi Vector, Hashtable, Enumeration, StringTokenizer

72 Sintassi di base Programmazione Java SDK 2.0

73 Sintassi di base di Java Commenti Esistono tre tipi di commenti: /* per testo su più righe */ // su una sola riga /** per il sistema di documentazione javadoc */

74 Sintassi di base di Java Tipi primitivi Esistono otto tipi di dati primitivi Interi byte, short, int, long In virgola mobile double, float Caratteri char Logici boolean

75 Sintassi di base di Java Interi Tipo Byte Short Int Long Dimensione 8 bit 16 bit 32 bit 64 bit Valore Da -128 a 127 Da a Da a Da a Per default un intero e di tipo Int

76 Sintassi di base di Java Reali (in virgola mobile, floating point) Tipo Float Double Dimensione 32 bit 64 bit Valore +/ E+38F +/ E+308 Per default un floating point è di tipo double

77 Sintassi di base di Java I letterali floating point presentano: Un punto decimale Una parte esponenziale (E o e) Sono seguiti da F o f (float) Sono seguiti da D o d (double) Esempio: 3.14 semplice floating point (double) 6.456F valore in virgola mobile (float) 115.2E+306D grosso valore double in virgola mobile (D è ridondante)

78 Sintassi di base di Java Carattere (char) Rappresenta un carattere Unicode a 16 bit senza segno Un char definito deve essere racchiuso da apici ( ) Usa le seguenti notazioni: a la lettera a /t il tab

79 Sintassi di base di Java Variabili logiche (boolean) Il tipo è rappresentato da boolean che ha due valori letterali: True (vero) False (falso)

80 Sintassi di base di Java Variabili stringhe (String) Il tipo String non è primitivo ma è una classe. Si usa per rappresentare una serie di caratteri Un letterale String è costituito da una serie di caratteri racchiusi tra doppi apici ( ) Può contenere salti di riga, tabulazioni e Unicode. Ciao Mondo Ciao Mondo /t Ciao Mondo Ciao Mondo /n Ciao Mondo stringa semplice stringa con tabulatore stringa nuova riga

81 Sintassi di base di Java Dichiarazione di variabili Per utilizzare una variabile bisogna prima dichiararla Una dichiarazione di variabile è costituita da un tipo e un nome Esempio: Int n, m; float a; char c; string mionome; boolean stato;

82 Sintassi di base di Java Assegnazione di variabili Si può assegnare un valore ad una variabile tramite l operatore di assegnamento (=) Es. x = 2; stato = true; L assegnazione si può fare anche quando si dichiara una variabile Es. int x = 2; boolean stato = true; string s= ciao ; Si possono concatenare più assegnazioni Es. x = y = 0;

83 Sintassi di base di Java Assegnazione di variabili Dichiarazione di una variabile = indicazione del tipo Es. int m; Assegnazione = attribuzione di un valore (coerente con il tipo) Es. m = 2; ma non m = 2.3; Dichiarazione e assegnazione: int m = 2;

84 Sintassi di base di Java Casting Ogni variabile primitiva è ospitata in una casella di memoria; Quando si dichiara e inizializza una variabile, viene riservato per essa uno spazio in memoria, di ampiezza variabile a seconda del tipo Ad esempio per un double occorre uno spazio maggiore che per un int

85 Sintassi di base di Java Casting (esempio) Int n = 12 a0x Int m = n 1100 a0x57 Viene copiato il valore di n, cioè il contenuto della casella di memoria di n, nella casella di memoria di m

86 Sintassi di base di Java Casting Non si possono uguagliare variabili di tipo diverso: int n = 2; double b = n; Non si possono eseguire operazioni con tipi diversi: Double b = 2.5 * n; Bisogna trasformare n (10) in double (10.0)

87 Sintassi di base di Java Casting Bisogna ospitare n in una casella di memoria più ampia, atta a contenere un double Questo si realizza con il casting Double nd = (double) n; (nd=10.0) In generale, la sintassi del casting è: Tipo v1; Tipo v2 = (tipo1) v1;

88 Sintassi di base di Java Casting Ci sono due tipi di casting: il primo ospita le variabili in spazi di memoria più ampi di quello di partenza: byte short, byte int, byte double, short int, short double, int double Questo tipo di casting non fa perdere precisione

89 Sintassi di base di Java Casting Il secondo ospita le variabili in spazi di memoria più piccoli quello di partenza: double int, double short, double byte, int short, short byte Questo tipo di casting fa perdere precisione e, se fatto male conduce a risultati senza senso

90 Sintassi di base di Java Casting (esempi) double d1 = ; int n1 = (int) d1; byte b1 = (byte) n1; int n2 = 1248; byte b2 = (byte) n2; n1 vale 12 OK, b1 vale 12 n2 vale 1248 NO! Il byte va da -128 a 127

91 Sintassi di base di Java Casting (esempi) L application ExPrimitive.java insegna ad utilizzare variabili di tipo primitivo L application ExStringhe1.java insegna le basi dell utilizzazione delle stringhe L application ExCasting.java insegna a fare il casting di variabili di tipo primitivo

92 Sintassi di base di Java Convenzioni sui nomi Variabili nomi con iniziale minuscola; se composti, la seconda iniziale è maiuscola boolean stato string nome, tuonome Classi nomi con iniziale maiuscola Class String class CiaoMondo Metodi nomi composti, anche verbi, che spieghino la funzione del metodo. La prima lettera è minuscola, le atre iniziali maiuscole accendifari() addvalue()

93 Sintassi di base di Java Conclusioni Abbiamo visto come dichiarare delle varibili di tipo primitivo e assegnare loro dei valori che siano coerenti con il tipo Abbiamo visto come ospitare il contenuto di una variabile in un altra di tipo diverso

94 Sintassi di base di Java Richiami e suggerimenti Ricordare bene tutti i tipi primitivi Interi byte, short, int, long In virgola mobile double, float Caratteri char Logici boolean

95 Costruttori e operatori Programmazione Java SDK 2.0

96 Costruttori e operatori I costrutti. I cicli Ripetono un istruzione o un blocco per un certo numero di volte In java esistono tre tipi di cicli: ciclo for ciclo while ciclo do

97 Costruttori e operatori La sintassi del ciclo for For (inizializzazione; espressione booleana; incremento) { istruzione o blocco di istruzioni } Esempio: int i; for (i=0; i < 3; i++) { out.println ( ciaoooooooo! ); }

98 Costruttori e operatori La sintassi del ciclo while while (espressione booleana) { istruzione o blocco di istruzioni } Esempio: int i; while (i < 3) { out.println ( ciaoooooooo! ); }

99 Costruttori e operatori La sintassi del ciclo do do { istruzione o blocco di istruzioni } while (espressione booleana); Esempio: int i=0; do { out.println ( ciaoooooooo! ); i++; } while (i < 3); Esercizio: ExCicli.java Esercizio: ExCicli.java

100 Costruttori e operatori I costrutti condizionali Eseguono diverse istruzioni a seconda del verificarsi o meno di certe condizioni In java esistono: costrutto if costrutto switch

101 Costruttori e operatori La sintassi del costrutto if (1) Il costrutto if ha varie sintassi a seconda che venga utilizzato con la parola chiave else o else if Nel caso più semplice si presenta come segue: if (espressione booleana) { istruzione o blocco di istruzioni }

102 Costruttori e operatori La sintassi del costrutto if (2) Quando è presente un else si scrive come segue: if (espressione booleana) { istruzione o blocco di istruzioni } else { altre istruzioni }

103 Costruttori e operatori La sintassi del costrutto if (3) Altrimenti con l else if, ha la seguente sintassi: if (espressione booleana) { istruzione o blocco di istruzioni } else if (espressione booleana) { altre istruzioni } altri else if in numero qualunque else { altre istruzioni }

104 Costruttori e operatori La sintassi del costrutto if - Esempi int voto; if (voto>6){ Out.println( sei stato promosso ); } else { out.println( Sei stato bocciato ); }

105 Costruttori e operatori La sintassi del costrutto if - Esempi int intvoto; if if (voto (voto >= >= 8) 8) { out.println( Sei out.println( Sei stato stato promosso promosso con con ottimo! ); ottimo! ); } else else if if (voto (voto >= >= 7){ 7){ out.println( Sei out.println( Sei stato stato promosso promosso con con buono ); buono ); } else else if if (voto (voto >= >= 6){ 6){ out.println( Sei out.println( Sei stato stato promosso promosso con con sufficiente ); sufficiente ); } else else if if (voto (voto < 6){ 6){ out.println( Sei out.println( Sei stato stato respinto ); respinto ); }

106 Costruttori e operatori La sintassi del costrutto switch Il costrutto switch si usa quando il valore di una variabile deve essere confrontato con una seri di valori interi (solo interi) switch (espressione) { case valore1: istruzioni; break; case valore2: istruzioni; break; default: istruzioni; break; }

107 Costruttori e operatori La sintassi del costrutto switch - Esempi int intvoto; switch switch (voto) (voto){ case case (8): (8): System.out.println( Promosso con con 8 ); 8 ); break; break; case case (7): (7): System.out.println( Promosso con con 7 ); 7 ); break; break; default: default: System.out.println( Voto sconosciuto ); sconosciuto ); break; break; }

108 Costruttori e operatori La sintassi del costrutto switch - Esempi int intday; switch switch (day) (day){ case case 1: 1: out.println( Lunedì ); break; break; case case 2: 2: out.println( Martedì ); break; break; default: default: out.println( nessun giorno ); giorno ); break; break; }

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

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

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

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

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

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

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

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

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

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

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

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

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

Proff. Fabio Ciao e Raffaele Bortone

Proff. Fabio Ciao e Raffaele Bortone ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMAZIONE ANNUALE A.S. 2014/2015 Classe IV C Informatica Proff. Fabio Ciao e Raffaele Bortone Libro di testo: Cloud

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

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

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

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

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

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

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

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

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

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

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

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

OBIETTIVI SPECIFICI DI APPRENDIMENTO

OBIETTIVI SPECIFICI DI APPRENDIMENTO Disciplina:... Anno scolastico: 20.../20... Classe/i :... Docente:... DI APPRENDIMENTO SEZIONE 1 Premesse matematiche Nozioni fondamentali sui sistemi di numerazione Sistemi di numerazione in base diversa

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

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. Programmazione orientata agli oggetti

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

Dettagli

Introduzione 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

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

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

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

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

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

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

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

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

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

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

Richiesta pagina PHP (es: index.php)

Richiesta pagina PHP (es: index.php) PHP PHP = personal home page SERVER Richiesta pagina PHP (es: index.php) Server Web (Apache) in ascolto sulla porta 80, si accorge che la pagina richiesta è una pagina PHP in base all'estensione o con

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

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

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

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

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

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

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

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

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

Dettagli

Synchronized (ancora)

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

Dettagli

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

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

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

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

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

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

Appunti di Informatica 1. Gianluca Rossi

Appunti di Informatica 1. Gianluca Rossi Appunti di Informatica 1 Gianluca Rossi Versione maggio 2011 Indice 1 Algoritmi, macchine e linguaggi di programmazione 3 1.1 La macchina di Von Neumann........................ 5 1.2 Dal linguaggio macchina

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

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

Il paradigma OO e le relative metodologie di progettazione. Programmazione orientata agli oggetti

Il paradigma OO e le relative metodologie di progettazione. Programmazione orientata agli oggetti Alessio Bechini - Corso di - Il paradigma OO e le relative metodologie di progettazione Metodologie OO Programmazione orientata agli oggetti La programmazione ad oggetti (OOP) è un paradigma di programmazione

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

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

Corso Programmazione 1 Capitolo 01: Concetti Elementari

Corso Programmazione 1 Capitolo 01: Concetti Elementari Corso Programmazione 1 Capitolo 01: Concetti Elementari Docente: Roberto Sebastiani - roberto.sebastiani@unitn.it Esercitatori: Mario Passamani - mario.passamani@unitn.it Alessandro Tomasi - alessandro.tomasi@unitn.it

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

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

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

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

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

Introduzione a.net (2)

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

Dettagli

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

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

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

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Corso di INFORMATICA 2 (Matematica e Applicazioni) Università di Camerino Scuola di Scienze e Tecnologie Sezione di Matematica Corso di INFORMATICA 2 (Matematica e Applicazioni) Anno Accademico 2014/15 3 Anno Primo Semestre Docenti: Paolo Gaspari Roberto

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

ARRAY E STRINGHE. G. Frosini Slide 1

ARRAY E STRINGHE. G. Frosini Slide 1 ARRAY E STRINGHE G. Frosini Slide 1 Array: VARIABILI ARRAY struttura dati costituita da elementi (anche nessuno, array vuoto) dello stesso tipo; tipo array: tipo degli elementi, non numero degli elementi;

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

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

L applicazione di MVC alla simulazione di ascensore I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1

L applicazione di MVC alla simulazione di ascensore I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1 I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1 3.13 (Caso di studio facoltativo) Pensare a oggetti: Modello-Vista-Controllore I design pattern descrivono strategie efficaci per costruire sistemi

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

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2014/2015

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2014/2015 ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2014/2015 Classe: 4^A inf Prof.ssa Lami Carla Prof. Simone Calugi Programma di INFORMATICA GENERALE, APPLICAZIONI

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

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

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

Java per programmatori C++

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

Dettagli

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

Modellazione e progettazione con UML. Eduard Roccatello 3D GIS Specialist www.roccatello.it

Modellazione e progettazione con UML. Eduard Roccatello 3D GIS Specialist <eduard.roccatello@3dgis.it> www.roccatello.it Modellazione e progettazione con UML Eduard Roccatello 3D GIS Specialist www.roccatello.it Object Oriented Analysis and Design Consente di modellare un sistema attraverso l

Dettagli

Variabili e tipi di dato

Variabili e tipi di dato Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per

Dettagli

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE OBJECT ORIENTED PROGRAMMING: I METODI DISPENSA 15.02 15-02_OOP_Metodi_[15] Questa dispensa è rilasciata sotto la licenza Creative

Dettagli

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

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

Dettagli

Programmazione 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

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

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

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

IL LINGUAGGIO JAVA: CARATTERISTICHE

IL LINGUAGGIO JAVA: CARATTERISTICHE CHE COS È JAVA È un linguaggio (e relativo ambiente di programmazione) definito dalla Sun Microsystems per permettere lo sviluppo di applicazioni sicure, performanti e robuste su piattaforme multiple,

Dettagli