Sviluppo Applicazioni Mobile Lezione 13. Dr. Paolo Casoto, Ph.D

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Sviluppo Applicazioni Mobile Lezione 13. Dr. Paolo Casoto, Ph.D - 2012"

Transcript

1 + Sviluppo Applicazioni Mobile Lezione 13

2 + 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 Casoto nel Sono rilasciati con licenza Creative Commons Attribuzione, non commerciale e non opere derivate.

3 + Package Insieme di classi e interfacce raggruppate all interno di una cartella in virtù di una similarità semantica Analogo ai Namespace in.net, ma con un vincolo di posizione reale dei file all interno delle cartelle del FS In.NET questo vincolo è limitato ad un posizionamento logico ma non fisico delle classi. Struttura gerarchica basata sul filesystem Nomi univoci grazie al dominio internet Due istruzioni (parole riservate): package import

4 + package Definisce il package di destinazione delle classi (e delle interfacce) definite all interno del file package <nomepackage>; Prima istruzione di un file Se l istruzione non c è (come finora) package di default Evitate di utilizzare i package di default quando possibile!!!

5 + import Dice in quali package/classe cercare i nomi usati nelle classi di questo file import <nomepackage>.<nomeclasse>; import <nomepackage>.*; Esempi import java.util.calendar; import java.util.gregoriancalendar; import java.util.*; N.B.: si importa (tutte le classi di) un package o specifiche classi, non i sottopackage : import java.*; è sbagliato

6 + Full qualified name <nomepackage>.<nomeclasse> java.util.calendar java.lang.string javax.swing.japplet Quindi: l import serve per evitare di scrivere i full qualified name ogni volta In realtà non si importa nulla: si evita di scrivere E necessario utilizzare il full qualified name quando vi può essere ambiguità nei nomi delle classi importate da package differenti. E.g.: Date, presente sia nei tipi di Java sia in java.sql

7 + Package e filesystem La struttura gerarchica dei package corrisponde a quella del filesystem Le classi del package a vanno nella directory a Le classi del package a.b vanno nella directory a/b I file del package xxx.yyy.zzz vanno nella directory xxx/yyy/zzz E la radice deve essere in CLASSPATH

8 + Esempio Nel package p.a (directory./p/a) ci sono 2 classi A e B (sottoclasse di A) Nel package p.b (directory./p/b) ci sono 3 classi C, D (sottoclasse di C) ed E (sottoclasse di B) Nel package p (directory./p) c è la classe F (che usa tutte le altre classi)

9 + Diagramma dei package p a A C b B D F E

10 + Package, compilazione, esecuzione, javadoc Bisogna risalire alla radice Per compilare (usare nomi di file) >javac d bin p/f.java >cd p; javac F.java (non trova i package) Per eseguire (usare full qualified names) >java p.f >cd p; java F (non trova la classe F, vuole p.f) >cd p; java p.f (non va, cerca il package/dir p) Javadoc (creazione documentazione): >javadoc -verbose -d doc p p.a p.b (Sempre risalire alla radice)

11 + Nomi univoci di package Nome di package: xxx.yyy.zzz (minuscole!) Nomi che iniziano con java. sono riservati java.lang, java.io, java.util, et al. Dal nome del dominio internet: il nome di un package sviluppato in enaip.it inizia con it.enaip (e prosegue con un nome esplicativo deciso dal programmatore: it.enaip.paolo, it.enaip.luca, )

12 + Package e visibilità Attributi e metodi possono avere visibilità: public: ovunque, anche in altri package protected: solo nelle sottoclassi e nel package (niente) package : solo nel package private: solo nella classe Classi e interfacce possono avere visibilità: public: anche da altri package (niente) package : solo nel package Regola: un unica classe public in un.java, e nome classe = nome file

13 + Importanza rassegna API Rassegna API? Java 1.4.2: 2991 classi in 135 package! Gulp!! Java 5 (1.5): di più!!! Non riusciamo a vedere tutte le API in qs. corso ma Da qualche parte bisogna pur cominciare È importante capire il modo giusto di lavorare di un programmatore moderno (che cerca pezzi di codice e li incolla ) È importante evitare di ri-inventare la ruota Molto di quello che deve fare un programmatore è già fatto, Si tratta solo di trovarlo È anche importante capire come e perché è fatto

14 + Fonti utili Documentazione in linea delle API Creata con javadoc In formato HTML Navigabile con un browser ( java/docs/) Sorgenti (.java) delle API! File src.zip nell SDK, da scompattare ( java/src/ ) Libri, manuali, altro L esperienza degli altri programmatori!!!

15 + Un po di package usati spesso java.lang: (importato implicitamente) java.util: (date, contenitori di oggetti, ) java.io: input/output, flussi, file, java.awt, java.awt.event, javax.swing (GUI) java.applet (applet in pagine Web) java.sql (JDBC x accesso DB) java.rmi (Remote Method Invocation) Un po di java.lang: Math, Object, System, String

16 +

17 +

18 + java.lang.math public static double sin(double) public static double cos(double) public Se vi serve static una funzione double matematica sqrt(double) ==> documentazione API public static double log(double) public static double abs(double) public static double exp(double, double) public static double floor(double) public static double ceil(double) public static double min(double, double) public static double max(double, double)...

19 + java.lang.object Radice della gerarchia, superclasse di tutte le classi Se non c è extends, è come se ci fosse extends Object I suoi metodi sono ereditati da tutte le classi public String tostring() public boolean equals(object o) (protected Object clone())

20 + tostring() public String tostring() Restituisce una rappresentazione testuale, visualizzabile dell oggetto Chiamato implicitamente quando serve Da sovrascrivere in ogni classe che definiamo (vediamo com è fatto )

21 + Esempio class Punto { //... public String tostring () { return "Punto: (" + getx() + ", " + gety() + ")"; } } class ProvaPunto { //... public static void main(string[] args) { Punto p = new Punto(2.3, 5.67); System.out.print(p); System.out.println(p); } } >java ProvaPunto Punto: (2.3, 5.67)

22 + equals public boolean equals(object o) 2 tipi di uguaglianza fra x e y: Essere lo stesso oggetto (x == y) Essere 2 oggetti uguali (x.equals(y)) == confronta i riferimenti In realtà, l equals di Object è come l == ma equals() può essere sovrascritto Da sovrascrivere in ogni classe che definiamo

23 + Esempio (1/3) class Punto { //... Notate il downcast: devo sovrascrivere, e il parametro di equals è public boolean equals (Object o) { Object return ((Punto)o.x == this.x && Si può fare di (Punto)o.y meglio == this.y); } }

24 + Esempio (2/3) class Punto { //... public boolean equals (Object o) { if(o instanceof Punto) return ((Punto)o.getX() == this.getx() && (Punto)o.getY() == this.gety()); else return false; } } Preferibile rispetto alla precedente

25 + Esempio (3/3) class Punto { //... public boolean equals (Object o) { return (o instanceof Punto && ((Punto)o).getX() == this.getx() && ((Punto)o).getY() == this.gety() ); } }

26 + java.lang.system Sveliamo un mistero: perché System.out.println (print) System.in.read Classe System Variabile di classe out (in) public final static PrintStream out; Metodi d istanza print, println, read Metodo statico exit(int): consente di chiudere l applicazione con un eventuale codice di errore. Metodo statico currenttimemillis: restituisce il tempo corrente in millisecondi. La granularità dipende dal sistema operativo utilizzato!!!

27 + java.lang.string Sequenza di caratteri String: sottoclasse final di Object Zucchero sintattico : Letterali stringa: "" (chiamata implicita del costruttore) +: concatena stringhe

28 + java.lang.string String: non modificabili (e StringBuffer: modificabili) public int length() public int charat(int) public boolean equals(object) public String substring(int) public String substring(int,int) public char[] tochararray()

29 + Eccezioni Quando si ha una situazione anomala in esecuzione Divisione per 0, accesso ad array con indice errato (ArrayIndexOutOfBoundException), lettura oltre fine file, ecc. ecc. l interprete Java: sospende l esecuzione normale lancia un eccezione: crea un istanza di (una sottoclasse di) java.lang.exception (eventualmente) esegue codice per la gestione dell eccezione

30 + Gettare, catturare, rimbalzare Un eccezione viene gettata Durante l esecuzione di un certo metodo, che avrà il suo record di attivazione sullo stack Se viene catturata: viene gestita Altrimenti viene rimbalzata al blocco più esterno (e al più esterno e ) al chiamante (e al chiamante del chiamante ) Vediamole una alla volta

31 + Gettare Gettare = creare un istanza di java.lang.exception (o sottoclasse) Chi lo fa: L interprete Java al verificarsi di una situazione anomala Esplicitamente il programmatore throw <oggettoeccezione> Es.: throw new Exception();

32 + Catturare Costrutto try/catch/finally Esegue <I> Se <I> getta eccezione e, <I> si interrompe viene eseguita la prima <Ii> t.c. e instanceof <Ei> <id> è come un parametro formale <If> sempre eseguita alla fine try { <I> } catch (<E1> <id>) { <I1> } catch (<E2> <id>) { <I2> }... } catch (<En> <id>) { <In> } finally { <If> }

33 + Rimbalzare (throws) Un eccezione non catturata viene rimbalzata Al blocco esterno (ricorsivamente) Al metodo chiamante (ricorsivamente) Se un metodo m() rimbalza eccezioni va dichiarato: public void m() throws E1, E2 { (se checked, ossia non RunTimeException) (se unchecked, non serve) Regola generale: Meglio catturare che rimbalzare

34 + Eccezioni ed errori Eccezioni predefinite Throwable ( oggetti gettabili ) Exception Error: il programma termina Non catturate gli Error 100+ classi predefinite Vediamo la documentazione

35 + Eccezioni in java.lang

36 + Errori in java.lang

37 + Eccezioni definite da noi class EccezioneMia extends Exception {} class EccezioneMia extends Exception { public EccezioneMia() {} public EccezioneMia(String s) { super(s);... } }

38 + Utilità delle eccezioni Separare codice normale da situazioni anomale Maggiore leggibilità Meglio di valore funzione = -1: ==> errore! Ne riparlerete Usate nella gestione dei file

39 + Eccezioni di java.io

40 + Flussi e file Flusso (stream) = sequenza di dati di input: da cui leggere di output: su cui scrivere I file sono visti come flussi di dati Il package java.io definisce parecchie (>50) classi e interfacce per la gestione dei file (vediamo la documentazione) Vediamo le più semplici (e inefficienti ) Tramite esempi

41 +

42 + java.io.file (1/2) Un istanza di File rappresenta un file/pathname all interno di un programma I metodi (d'istanza) di File vedono un file come oggetto atomico (non vedono il contenuto) Associare l istanza di File a un pathname (con il costruttore): public File(String) Creare un File vuoto: public boolean createnewfile() (il costruttore non è un creatore ; con solo il costruttore, il file fisico sul file system NON viene creato!!)

43 + java.io.file (2/2) Verificare se un file esiste public boolean exists() Cancellare un file public boolean delete() Verificare se l istanza rappresenta un file o una directory: public boolean isfile() public boolean isdirectory() Cfr. documentazione API

44 + Esempio import java.io.*; class ProvaFile { public static void main (String[] args) throws IOException { File f = new File("pippo.txt"); System.out.println(f.exists()); f.createnewfile(); System.out.println(f.exists()); System.out.println(f.isFile()); System.out.println(f.isDirectory()); System.in.read(); f.delete(); } } >java ProvaFile false true true false

45 + Esempio

46 + Come si lavora sul contenuto di un file 3 passi Apertura Operazioni lettura/scrittura Chiusura Gestione diversa per lettura e scrittura Vediamo prima la lettura

47 + Stefano Mizzaro - API 2

48 + InputStream Classe astratta public abstract int read(): legge un byte dal flusso, ritorna il codice ASCII Sovraccarico (public int read(byte b[])) e può leggere anche un array di byte Restituisce -1 a fine file public void close(): chiude il flusso public long skip(long n): salta il numero di byte specificato dal parametro

49 + FileInputStream Sottoclasse di InputStream È quella da usare, i suoi oggetti sono flussi di input. Non definisce altri metodi; ovviamente: implementa read e definisce il costruttore, da usare per l apertura (lo vediamo subito) Quindi si può leggere il contenuto di un file, carattere per carattere, uno dopo l altro sequenzialmente

50 + Stefano Mizzaro - API 2

51 + OutputStream Simmetria con InputStream Classe astratta public abstract void write(int b): scrive un byte sul flusso (8 bit meno significativi) sovraccarico (public void write(byte b[])) e può scrivere anche un array di byte alla volta public void close(): chiude il flusso. È molto importante chiudere i flussi di output per non perdere i dati non ancora salvati

52 + FileOutputStream Sottoclasse di OutputStream È quella da usare, i suoi oggetti sono flussi di output. Non definisce altri metodi; ovviamente: implementa write e definisce il costruttore, da usare per l apertura (lo vediamo subito) Quindi si può scrivere il contenuto di un file, carattere per carattere, uno dopo l altro sequenzialmente

53 + Apertura file I costruttori di FileInputStream e FileOutputStream aprono un file (lo preparano ) in lettura e scrittura Parametro: un oggetto della classe File: FileInputStream f; f = new FileInputStream(new File("pippo/pluto.txt")); oppure una stringa (pathname del file): FileInputStream f; f=new FileInputStream("pippo/pluto.txt");

54 + Esempio 1: VediFile.java Scriviamo un programma per visualizzare il contenuto di un file di testo Uso: >java VediFile pippo.txt

55 + VediFile.java (1/2) mport java.io.*; ublic class VediFile { public static void main(string args[]) { FileInputStream f; int c; if (args.length!= 1) System.out.println( "Uso: java VediFile <file>"); else { try { f = new FileInputStream(args[0]); } catch (FileNotFoundException e) { System.out.println( "Errore in apertura file"); return; }

56 + VediFile.java (2/2) } } } try { c = f.read(); while (c > 0) { System.out.print((char) c); c = f.read(); } } catch (IOException e) { System.out.println( "Errore in lettura file"); } try { f.close(); } catch (IOException e) { System.out.println( "Errore in chiusura file"); }

57 + Commenti Leggiamo carattere per carattere dal file e scriviamo su standard output Cast perché read restituisce un int Esercizio: cosa viene visualizzato se tolgo il cast? A fine file la read restituisce -1 Le eccezioni vanno gestite/catturate try/catch per gestire tutte le possibili eccezioni

58 + Es. 2 : CopiaFile.java Programma che copia un file in un altro Legge, carattere per carattere, da un (File)InputStream e scrive, carattere per carattere, su un (File)OutputStream Uso: >java CopiaFile pippo.txt pluto.txt

59 + CopiaFile.java import java.io.*; public class CopiaFile { public static void main(string args[]) throws FileNotFoundException, IOException { FileInputStream in; FileOutputStream out; int c; if (args.length!= 2) System.out.println( "Uso: java CopiaFile <filein> <fileout>"); else { in = new FileInputStream(args[0]); out = new FileOutputStream(args[1]); c = in.read(); while (c > 0) { out.write((char) c); c = in.read(); } in.close(); out.close(); } } }

60 + Commenti Non abbiamo catturato le eccezioni (male! ==> Ex.) Il file di output viene creato dal costruttore di FileOutputStream Ex.: verificare che è proprio così Il corpo del ciclo ha la stessa struttura di VediFile

61 + I file e i tipi primitivi Finora: lettura/scrittura byte per byte, carattere per carattere Spesso è comodo usare i tipi primitivi (leggere e scrivere double, int, boolean, ). Si usano: DataInputStream (che implementa DataInput) DataOutputStream (che implementa DataOutput)

62 + Stefano Mizzaro - API 2

63 + DataInput(Stream) e DataOutput (Stream) Le interfacce DataInput e DataOutput contengono metodi del tipo readboolean(), readbyte(), writedouble(), writeshort(),... DataInputStream e DataOutputStream simili alle classi viste finora però i costruttori non sono sovraccarichi e vogliono come parametro un oggetto di tipo, rispettivamente, InputStream e OutputStream (non una stringa)

64 + Esempio: I/O di tipi primitivi import java.io.*; public class DataFile { public static void main (String[] args) throws IOException { DataOutputStream out; DataInputStream in; out = new DataOutputStream(new FileOutputStream("tmp")); out.writeboolean(false); out.writedouble(12.34); out.writechar('q'); out.close(); in = new DataInputStream(new FileInputStream("tmp")); System.out.println(in.readBoolean()); System.out.println(in.readDouble()); System.out.println(in.readChar()); in.close(); } }

65 + Commenti Proviamo a eseguirlo Proviamo a visualizzare il file creato Notate che non parliamo alla classe (interfaccia) base DataOutputStream non DataOutput DataInputStream non DataInput perché le due interfacce non hanno il metodo close() Avremmo errore in compilazione -> provare (Ex.) No eccezioni -> Ex.

66 + I file ad accesso casuale (diretto) Finora solo accesso sequenziale Impossibile tornare indietro (solo chiudendo e riaprendo il flusso) Accesso diretto, non sequenziale come un array (però su disco) java.io.randomaccessfile implementa DataInput e DataOutput ha un metodo seek(int) per posizionarsi all'n-esimo byte del file (1 è zero) Ha anche altri metodi (tutti quelli di DataInput e DataOutput)

67 + Stefano Mizzaro - API 2

68 + Esempio: lettura da file ad accesso casuale Scriviamo 6 caratteri su un file Poi li leggiamo usando l accesso casuale in ordine inverso dal quinto al primo

69 + FileAccessoCasuale.java import java.io.*; class FileAccessoCasuale { public static void main (String[] args) throws IOException, EOFException { FileOutputStream out = new FileOutputStream("tmp"); for (char c = 'a'; c <= 'f'; c++) out.write(c); out.close(); RandomAccessFile f = new RandomAccessFile("tmp", "r"); for (int i = 4; i >= 0; i--) { f.seek(i); System.out.println((char)f.readByte()); } } }

70 + Commenti Eccezioni Costruttore con 2 parametri: "r" indica lettura (read) "rw" indicherebbe lettura & scrittura (read & write) Evitare operazioni continue in memoria secondaria (es.: ordinamento di file) ma evitare anche di caricare file enormi in memoria centrale Stefano Mizzaro - API 2

71 + Classi per la lettura di dati UNICODE In aggiunta ai flussi che operano su dati in modalità byte, è possibile in Java disporre di una gerarchia di oggetti che leggono/scrivono dati come flussi di caratteri UNICODE a 16 bit: Writer Reader Tutte le medesime varianti viste per i flussi dati standard Possibilità di far interagire le due tipologie di flussi di dati mediante gli oggetti InputStreamReader. Ed OutputStreamWriter

72 + Riassunto Eccezioni Gettare, catturare, rimbalzare try/catch/finally throw, throws Flussi e file File, InputStream, FileInputStream, OutputStream, FileOutputStream, DataInputStream, DataOutputStream, RandomAccessFile Prox. lezione: API x GUI (AWT)

73 + Domande??? Grazie a tutti per l attenzione

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 17 3 maggio 2015! Programmazione

Dettagli

Riassunto. Rassegna API - 1. Scaletta. Package. package. import. Stefano Mizzaro 1. Programmazione strutturata TDA OO. OO in Java

Riassunto. Rassegna API - 1. Scaletta. Package. package. import. Stefano Mizzaro 1. Programmazione strutturata TDA OO. OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione, lezione 21 1 febbraio 2006

Dettagli

Riassunto. Rassegna API - 1. Scaletta. Package. package. import. Stefano Mizzaro 1. Programmazione strutturata TDA. OO in Java

Riassunto. Rassegna API - 1. Scaletta. Package. package. import. Stefano Mizzaro 1. Programmazione strutturata TDA. OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 17 13 novembre 2013 Programmazione

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione

Dettagli

Jav@Lab Il linguaggio Java I file sequenziali

Jav@Lab Il linguaggio Java I file sequenziali Jav@Lab Il linguaggio Java I file sequenziali Input e Output Secondo i canoni dei linguaggi di programmazione "procedurali" il concetto di input e output è strettamente legato al tipo di dispositivo esterno

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

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

Input/Output in Java

Input/Output in Java Corso Java Input/Output in Java Docente: Dott. Marco Bianchi Slide realizzate da Ing. A.Bei, Dott. M.Bianchi, Dott. F.Lombardi Input/Output in Java Per effettuare operazioni di I/O in Java è possibile

Dettagli

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

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

Dettagli

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

Un flusso (stream) è una astrazione che produce e/o consuma informazioni.

Un flusso (stream) è una astrazione che produce e/o consuma informazioni. I programmi Java eseguono l I/O mediante i flussi. Un flusso (stream) è una astrazione che produce e/o consuma informazioni. Ogni flusso è collegato ad un dispositivo fisico dal sistema di I/O di 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

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

Cifratura simmetrica

Cifratura simmetrica Cifratura Cifratura simmetrica Alice canale insicuro Bob 2 Cifratura simmetrica m Algoritmo di decifratura m Alice canale insicuro Algoritmo di cifratura Bob 3 Cifrari simmetrici chiave privata k chiave

Dettagli

Flussi, lettori e scrittori

Flussi, lettori e scrittori Flussi, lettori e scrittori Per sequenze di byte, InputStream, OutputStream e loro sottoclassi. Es: InputStream in = ; int next = in. read(); if (next!= -1) byte b = (byte) next; Per sequenze di caratteri,

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

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java

Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica Variabili e Metodi di classe Interfacce e Package Gestione di File in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Variabili di classe: Static Una variabile di classe

Dettagli

Introduzione. Java. Streams. Streams

Introduzione. Java. Streams. Streams Java il sistema di I/O G. Prencipe prencipe@di.unipi.it Introduzione La gestione del sistema di I/O è una parte fondamentale di qualsiasi linguaggio di programmazione In questa lezione approfondiremo la

Dettagli

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

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

Dettagli

Corso 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

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

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

Dettagli

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

Operazioni di input/output. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Operazioni di input/output Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Input /Output introduzione Per ottenere delle informazioni un programma apre un flusso (Stream)

Dettagli

Corso di Reti di Calcolatori L-A

Corso di Reti di Calcolatori L-A Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 2 (svolta) Socket Java con connessione Luca Foschini Anno accademico 2009/2010 Esercitazione 2 1 Architettura

Dettagli

Programmazione ad oggetti

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

Dettagli

JAVA 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

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

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

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

Prossime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1

Prossime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1 Prossime lezioni Dai TDA agli oggetti Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione, lezione 18 19 gennaio

Dettagli

10.4. La classe File e gli attributi di directory e file

10.4. La classe File e gli attributi di directory e file pag.143 10.4. La classe File e gli attributi di directory e file Questa classe, molto utile per operare con i file su disco, consente di accedere alle directory, verificare e acquisire le caratteristiche

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

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

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

Scope e visibilità per classi

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

Dettagli

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

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

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

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

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

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

Gestione di file in Java

Gestione di file in Java CAPITOLO 17 Gestione di file in Java Ogni insieme di informazioni residenti su memoria di massa costituisce in Java un flusso di dati che è denominato stream. Più in particolare un input stream costituisce

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

Laboratorio di Informatica Lezione 4

Laboratorio di Informatica Lezione 4 Laboratorio di Informatica Lezione 4 Cristian Consonni 28 ottobre 2015 Cristian Consonni Laboratorio di Informatica, Lezione 4 1 / 42 Outline 1 Canali standard 2 Input da tastiera 3 Output 4 Esercizi (parte

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

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

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

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

ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete

ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete Compito in classe proposto Realizzare un applicazione C/S per trasferire al Client il contenuto

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

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

Pila di interi. Car 1. Car n. Pila di interi: Pila di Oggetti: Gli elementi che sono inseriti e tolti dalla pila sono numeri interi

Pila di interi. Car 1. Car n. Pila di interi: Pila di Oggetti: Gli elementi che sono inseriti e tolti dalla pila sono numeri interi Pila di Oggetti Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577 234850 - interno: 7102 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

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

10 - Programmare con gli Array

10 - Programmare con gli Array 10 - Programmare con gli Array 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

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente

Dettagli

Gestione delle eccezioni Individuazione e ripristino parseint Individuazione e ripristino Individuazione e ripristino parseint

Gestione delle eccezioni Individuazione e ripristino parseint Individuazione e ripristino Individuazione e ripristino parseint parseint parseint showinputdialog JOptionPanenull null throw BankAccount IllegalArgumentException amount public class BankAccount { public void withdraw(double amount) { if (balance < amount) { // Parametro

Dettagli

Test di unità con JUnit4

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

Dettagli

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

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

Utilizzo delle classi

Utilizzo delle classi Utilizzo delle classi I metodi costruttore ed il loro utilizzo. Alcune classi di ingresso e uscita 2 Classi ed Oggetti predefiniti Oggetti predefiniti Sono presenti nel programma Non è necessario crearli

Dettagli

Progettazione di classi

Progettazione di classi Progettazione di classi Scegliere una classe Una classe rappresenta un singolo concetto Esempi: Una classe puo` rappresentare un concetto matematico Point Rectangle Ellipse Una classe puo` rappresentare

Dettagli

INPUT OUTPUT Programmazione in rete e laboratorio. Le operazioni di I/O avvengono attraverso stream (sequenze di byte)

INPUT OUTPUT Programmazione in rete e laboratorio. Le operazioni di I/O avvengono attraverso stream (sequenze di byte) INPUT OUTPUT 2004-05 Le operazioni di I/O avvengono attraverso stream (sequenze di byte) programma stream in lettura sorgente Programmazione in rete e laboratorio programma stream in scrittura destinazione

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

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

Programmazione Java: Variabili membro, Metodi La parola chiave final

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

Dettagli

Uno stream o flusso di dati o canale è un percorso di comunicazione tra la sorgente di una certa informazione e la sua destinazione.

Uno stream o flusso di dati o canale è un percorso di comunicazione tra la sorgente di una certa informazione e la sua destinazione. pag.112 9. Input e output Nell informatica classica il concetto di input e output era strettamente legato all uso dei dispositivi esterni di memorizzazione (dischi, nastri) e quindi al concetto di file,

Dettagli

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++ ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è

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

Restrizioni per la sicurezza

Restrizioni per la sicurezza Applets Applet = programma Java che può essere invocato all interno di un file.html ed eseguito da un browser web, es. C:\Files> explorer MioFile.html un appletviewer, es. C:\Files> appletviewer MioFile.html

Dettagli

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell Tecnologie Web L-A Java e HTTP Dario Bottazzi Tel. 051 2093541, E-Mail: dario.bottazzi@unibo.it, SkypeID: dariobottazzi Java e TCP/IP in a Nutshell! java.net.inetaddress: rappresenta un indirizzo IP e

Dettagli

Lettura e scrittura - Stream

Lettura e scrittura - Stream Lettura e scrittura - Stream Obiettivo(fine della lezione): leggere/scrivere da/su file (e quindi verso qualsiasi dispositivo)! Tipi di stream " Stream di caratteri " Stream di byte! Classi astratte che

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

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

Programmazione ad Oggetti. Java Parte II

Programmazione ad Oggetti. Java Parte II Programmazione ad Oggetti Java Parte II Overview Caratteristiche lessicali Il primo programma Java 1 Commenti /* Commento tradizionale, eventualmente su più linee, non nidificato */ // Commento su di una

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

Lezione 18 Le classi per l'input/output nel pacchetto java.io

Lezione 18 Le classi per l'input/output nel pacchetto java.io Lezione 18 Le classi per l'input/output nel pacchetto java.io Il package java.io incapsula le funzionalità di Input/Output (I/O) di Java. Come tutti i programmatori presto imparano, le applicazioni informatiche

Dettagli

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB Http con java, URL Ing. Marco Mamei Anno Accademico 2004-2005 M. Mamei - Tecnologie

Dettagli

La fase di progetto e realizzazione. PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Diagramma delle classi realizzativo

La fase di progetto e realizzazione. PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Diagramma delle classi realizzativo Università di Roma La Sapienza, Facoltà di Ingegneria Corso di PROGETTAZIONE DEL SOFTWARE (Ing. Gestionale) Prof. Giuseppe De Giacomo & Monica Scannapieco Anno Accademico 2003/04 LA FASE DI PROGETTO E

Dettagli

RETI DI CALCOLATORI Linguaggio Java: Il Package di Input Output

RETI DI CALCOLATORI Linguaggio Java: Il Package di Input Output Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria CORSO DI RETI DI CALCOLATORI Linguaggio Java: Il Package di Input Output Prof. Franco Zambonelli Lucidi realizzati in collaborazione

Dettagli

Programmazione Java (Applicazioni e Applet )

Programmazione Java (Applicazioni e Applet ) Programmazione Java (Applicazioni e Applet ) Prof. Flavio Cerini Dopo aver installato il JDK 1.4.1_01 e inserito il percorso della cartella \bin nel PATH si possono provare i seguenti programmi funzionanti.

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

Lezione 11 Accesso al file system

Lezione 11 Accesso al file system A cura di Carlo Pelliccia Qualunque applicazione Android può leggere e scrivere file dalla memoria interna del telefono o da una scheda esterna inserita nel dispositivo. I principi da osservare per compiere

Dettagli

File, flussi e pacchetto java.io

File, flussi e pacchetto java.io File, flussi e pacchetto java.io Formato binario e formato di testo I dati sono memorizzati nei files in due formati: testo (successione di caratteri) binario (successione di bytes) Ad es. numero 12345

Dettagli

La gestione di file e flussi in Java: note introduttive

La gestione di file e flussi in Java: note introduttive Università degli Studi di Palermo Facoltà di Ingegneria La gestione di file e flussi in Java: note introduttive Edoardo Ardizzone & Riccardo Rizzo Appunti per il corso di Fondamenti di Informatica A.A.

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

Il sistema I/O di Java

Il sistema I/O di Java Programmazione Java:. Il sistema I/O di Java romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Stream I/O Gestione di stream byte oriented Filtri Gestione di stream char oriented

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

Main System Monitor Keyboard

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

Dettagli

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

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

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_09010 - Stefano Millozzi

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_09010 - Stefano Millozzi Connessioni di rete Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi 1 Socket orientato alla connessione o non orientato alla connessione 2 Socket in astratto 3 Socket modalità

Dettagli

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind()

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind() Organizzazione della lezione Lezione 18 Remote Method Invocation - 6 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

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

Algoritmi e Strutture Dati. Tipo di dato astratto e Strutture dati elementari

Algoritmi e Strutture Dati. Tipo di dato astratto e Strutture dati elementari Algoritmi e Strutture Dati Tipo di dato astratto e Strutture dati elementari 1 Argomenti della lezione Tipi di dato astratto Strutture dati elementari Liste o Implementazione di liste in Java Stack Code

Dettagli

Parte II: Reti di calcolatori Lezione 10

Parte II: Reti di calcolatori Lezione 10 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 10 Giovedì 3-04-2014 1 Reti per la distribuzione

Dettagli

Note pratiche sullo sviluppo di servlet (I)

Note pratiche sullo sviluppo di servlet (I) Note pratiche sullo sviluppo di servlet (I) Nel caso in cui sulla macchina locale (PC in laboratorio/pc a casa/portatile) ci sia a disposizione un ambiente Java (con compilatore) e un editor/ambiente di

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 12 ADT: Lista, Pila, Coda A. Miola Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ ADT: Lista, Pila, Coda 1 Contenuti!Tipo

Dettagli

Informatica I. Ingegneria Medica. Prof. Diego Salamon

Informatica I. Ingegneria Medica. Prof. Diego Salamon Informatica I Ingegneria Medica Prof. Diego Salamon Gestione I/O Prof. Diego Salamon Introduzione Nella creazione e gestione del software è necessario interagire con entità esterne a quelle del programma

Dettagli