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 - 2: eccezioni e file. Eccezioni. Oggi. Gettare, catturare, rimbalzare. Gettare. Stefano Mizzaro 1

Riassunto. Rassegna API - 2: eccezioni e file. Eccezioni. Oggi. Gettare, catturare, rimbalzare. Gettare. Stefano Mizzaro 1 Rassegna API - 2: eccezioni e file Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 21 Riassunto

Dettagli

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti Java File 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

Dettagli

Riassunto. Rassegna API - 2: eccezioni e file. Eccezioni. Oggi. Gettare. Gettare, catturare, rimbalzare. Stefano Mizzaro 1

Riassunto. Rassegna API - 2: eccezioni e file. Eccezioni. Oggi. Gettare. Gettare, catturare, rimbalzare. Stefano Mizzaro 1 Rassegna API - 2: eccezioni e file Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 18,19 15,19/11/2013

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

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

z class z costruttore, new z this z GRWQRWDWLRQ (C.m(), x.m()) z extends z Insieme di classi e interfacce z Namespace z Struttura gerarchica

z class z costruttore, new z this z GRWQRWDWLRQ (C.m(), x.m()) z extends z Insieme di classi e interfacce z Namespace z Struttura gerarchica 3DFNDJHMDYDGRF LQWURGX]LRQHDOOH$3, Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/~mizzaro mizzaro@dimi.uniud.it 5 maggio 2003 z class Riassunto:

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

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

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

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

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

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

Dettagli

Corso 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

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

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

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

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

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

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

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

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

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

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

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

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

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

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

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

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

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

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

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

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

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

Dettagli

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

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

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

Inizializzazione, Assegnamento e Distruzione di Classi

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

Dettagli

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

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

Variabili e Metodi di classe Interfacce e Package File in Java

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

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

Modulo 4: Ereditarietà, interfacce e clonazione

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

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

A. Ferrari Stream e File

A. Ferrari Stream e File Stream e File Java la classe File o per operare con l intero file java mette a disposizione la classe File o per utilizzare la classe File è necessario importare la libreria java.io.file o la classe File

Dettagli

Prova di Laboratorio di Programmazione

Prova di Laboratorio di Programmazione Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare

Dettagli

Realizzazione di una classe con un associazione

Realizzazione di una classe con un associazione Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe

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

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

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

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

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

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

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

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

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

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

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

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

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 18 31/03/2014 Funzioni: Dichiarazione e Definizione La dichiarazione di una funzione serve a comunicare al compilatore quali sono

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

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

Introduzione alla programmazione in C

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

Dettagli

A. Ferrari Java: Stream e File

A. Ferrari Java: Stream e File Java: Stream e File la classe File o per operare con l intero file java mette a disposizione la classe File o per utilizzare la classe File è necessario importare la libreria java.io.file o la classe File

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

Programmare in Java. Olga Scotti

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

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

Allocazione dinamica della memoria - riepilogo

Allocazione dinamica della memoria - riepilogo Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Storage duration Allocazione dinamica della

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

Java threads (2) Programmazione Concorrente

Java threads (2) Programmazione Concorrente Java threads (2) emanuele lattanzi isti information science and technology institute 1/28 Programmazione Concorrente Utilizzo corretto dei thread in Java emanuele lattanzi isti information science and

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

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Ingegneria del software A Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Ingegneria del software A Input/output (in Java) Michele Tomaiuolo Eccezione Un eccezione è

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

Parola chiave extends

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

Dettagli

Visual Basic.NET La Gestione degli Errori di Federico BARBATI

Visual Basic.NET La Gestione degli Errori di Federico BARBATI Generalità Visual Basic.NET La Gestione degli Errori di Federico BARBATI La gestione degli errori, è una parte fondamentale di un codice ben progettato. Fino ad oggi, gli errori nelle applicazioni scritte

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

UML Diagrammi delle classi. UML Diagramma classi 1

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

Dettagli

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

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

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

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

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

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

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

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

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 implementano

Dettagli

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication

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

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

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

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 10 Strutture collegate - 2 A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Strutture collegate - 2 1 Contenuti!Strutture

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Conclusioni Parte b versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

LABORATORIO DI INFORMATICA 1 2014-2015. - parte 6 -

LABORATORIO DI INFORMATICA 1 2014-2015. - parte 6 - LABORATORIO DI INFORMATICA 1 2014-2015 - parte 6 - Lettura da File Obiettivo: leggere un file Per prima cosa dobbiamo creare un oggetto che rappresenti il file che vogliamo utilizzare (inserendo anche

Dettagli

Tale attività non è descritta in questa dispensa

Tale attività non è descritta in questa dispensa Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli