Capitolo 2. Protocolli e contratti. c 2005 Pearson Education Italia Capitolo 2-1 / 82

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Capitolo 2. Protocolli e contratti. c 2005 Pearson Education Italia Capitolo 2-1 / 82"

Transcript

1 Capitolo 2 Protocolli e contratti c 2005 Pearson Education Italia Capitolo 2-1 / 82

2 Sommario: Protocolli e contratti 1 Nozioni base della programmazione OO La programmazione ad oggetti Protocolli e contratti Classi 2 Primi esempi di classi e oggetti La classe ConsoleOutputManager Creazione degli oggetti Invocazione di un metodo La classe ConsoleInputManager 3 Prototipi e segnature 4 La classe String 5 Variabili e tipi Dichiarazione e definizione di variabili Tipi primitivi e tipi riferimento c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 2 / 82

3 Paradigma di programmazione Paradigma...un insieme di teorie, standard e metodi che rappresentano un modo di organizzare la conoscenza, cioè un modo di guardare il mondo. T. Kunh, La struttura delle rivoluzioni scientifiche, 1970 c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 3 / 82

4 Paradigma di programmazione Paradigma...un insieme di teorie, standard e metodi che rappresentano un modo di organizzare la conoscenza, cioè un modo di guardare il mondo. T. Kunh, La struttura delle rivoluzioni scientifiche, 1970 Un paradigma di programmazione fornisce un metodo per: concettualizzare il processo di computazione c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 3 / 82

5 Paradigma di programmazione Paradigma...un insieme di teorie, standard e metodi che rappresentano un modo di organizzare la conoscenza, cioè un modo di guardare il mondo. T. Kunh, La struttura delle rivoluzioni scientifiche, 1970 Un paradigma di programmazione fornisce un metodo per: concettualizzare il processo di computazione organizzare e strutturare i compiti che un calcolatore deve svolgere c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 3 / 82

6 Paradigma di programmazione Paradigma...un insieme di teorie, standard e metodi che rappresentano un modo di organizzare la conoscenza, cioè un modo di guardare il mondo. T. Kunh, La struttura delle rivoluzioni scientifiche, 1970 Un paradigma di programmazione fornisce un metodo per: concettualizzare il processo di computazione organizzare e strutturare i compiti che un calcolatore deve svolgere OOP è un paradigma contrapposto a quelli tradizionali: imperativo (Pascal, C,... ) funzionale (LISP, FP,... ) logico (Prolog) c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 3 / 82

7 Esempio: PinoPasticcino Vogliamo ordinare una torta per una festa di compleanno. Come agiamo? c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 4 / 82

8 Esempio: PinoPasticcino Vogliamo ordinare una torta per una festa di compleanno. Come agiamo? Andiamo dal nostro pasticcere di fiducia (PinoPasticcino) c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 4 / 82

9 Esempio: PinoPasticcino Vogliamo ordinare una torta per una festa di compleanno. Come agiamo? Andiamo dal nostro pasticcere di fiducia (PinoPasticcino) Gli comunichiamo il tipo della torta e il giorno in cui passeremo a ritirarla c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 4 / 82

10 Esempio: PinoPasticcino Vogliamo ordinare una torta per una festa di compleanno. Come agiamo? Andiamo dal nostro pasticcere di fiducia (PinoPasticcino) Gli comunichiamo il tipo della torta e il giorno in cui passeremo a ritirarla Astraendo dai dettagli: inviamo un messaggio al commesso della pasticceria c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 4 / 82

11 Esempio: PinoPasticcino Per risolvere il problema abbiamo: individuato un agente appropriato inviato a tale agente un messaggio contenente la nostra richiesta c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 5 / 82

12 Esempio: PinoPasticcino Per risolvere il problema abbiamo: individuato un agente appropriato inviato a tale agente un messaggio contenente la nostra richiesta Osserviamo che PinoPasticcino si assume la responsabilità di soddisfare la nostra richiesta c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 5 / 82

13 Esempio: PinoPasticcino Per risolvere il problema abbiamo: individuato un agente appropriato inviato a tale agente un messaggio contenente la nostra richiesta Osserviamo che PinoPasticcino si assume la responsabilità di soddisfare la nostra richiesta utilizzerà un qualche metodo (algoritmo) per soddisfarla c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 5 / 82

14 Oggetti Gli oggetti sono caratterizzati da stato e comportamento. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 6 / 82

15 Oggetti Gli oggetti sono caratterizzati da stato e comportamento. Stato Insieme delle proprietà che caratterizzano l oggetto in un determinato istante. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 6 / 82

16 Oggetti Gli oggetti sono caratterizzati da stato e comportamento. Stato Insieme delle proprietà che caratterizzano l oggetto in un determinato istante. cane: nome, colore, razza, età,... auto: colore, potenza, livello carburante, velocità,... c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 6 / 82

17 Oggetti Gli oggetti sono caratterizzati da stato e comportamento. Stato Insieme delle proprietà che caratterizzano l oggetto in un determinato istante. cane: nome, colore, razza, età,... auto: colore, potenza, livello carburante, velocità,... Comportamento Insieme delle azioni che l oggetto può eseguire. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 6 / 82

18 Oggetti Gli oggetti sono caratterizzati da stato e comportamento. Stato Insieme delle proprietà che caratterizzano l oggetto in un determinato istante. cane: nome, colore, razza, età,... auto: colore, potenza, livello carburante, velocità,... Comportamento Insieme delle azioni che l oggetto può eseguire. cane: abbaiare, scodinzolare, mangiare,... auto: accelerare, consumare, sterzare,... c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 6 / 82

19 Messaggi e oggetti Nella programmazione ad oggetti un azione viene iniziata inviando un messaggio ad un agente (un oggetto) responsabile di svolgerla. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 7 / 82

20 Messaggi e oggetti Nella programmazione ad oggetti un azione viene iniziata inviando un messaggio ad un agente (un oggetto) responsabile di svolgerla. Il messaggio codifica la richiesta di un azione ed è corredato con l informazione necessaria (argomenti) a soddisfarla c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 7 / 82

21 Messaggi e oggetti Nella programmazione ad oggetti un azione viene iniziata inviando un messaggio ad un agente (un oggetto) responsabile di svolgerla. Il messaggio codifica la richiesta di un azione ed è corredato con l informazione necessaria (argomenti) a soddisfarla ordinatorta(torta,data) c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 7 / 82

22 Messaggi e oggetti Nella programmazione ad oggetti un azione viene iniziata inviando un messaggio ad un agente (un oggetto) responsabile di svolgerla. Il messaggio codifica la richiesta di un azione ed è corredato con l informazione necessaria (argomenti) a soddisfarla ordinatorta(torta,data) Il ricevente, se accetta il messaggio, si assume la responsabilità di portare a compimento la relativa azione c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 7 / 82

23 Messaggi e oggetti Nella programmazione ad oggetti un azione viene iniziata inviando un messaggio ad un agente (un oggetto) responsabile di svolgerla. Il messaggio codifica la richiesta di un azione ed è corredato con l informazione necessaria (argomenti) a soddisfarla ordinatorta(torta,data) Il ricevente, se accetta il messaggio, si assume la responsabilità di portare a compimento la relativa azione In risposta al messaggio il ricevente eseguirà un metodo per soddisfare la richiesta c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 7 / 82

24 Protocolli e contratti Protocollo (interfaccia) Definisce le regole di comunicazione con l oggetto, ovvero: l insieme dei messaggi il formato dei messaggi che l oggetto può riconoscere. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 8 / 82

25 Protocolli e contratti Protocollo (interfaccia) Definisce le regole di comunicazione con l oggetto, ovvero: l insieme dei messaggi il formato dei messaggi che l oggetto può riconoscere. Contratto Associato ad ogni messaggio Descrive il modo in cui l oggetto garantisce di rispondere al messaggio c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 8 / 82

26 PinoPasticcino è un Pasticcere E se fossi entrato in una pasticceria a caso? c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 9 / 82

27 PinoPasticcino è un Pasticcere E se fossi entrato in una pasticceria a caso? In realtà avrei potuto risolvere il mio problema entrando in una qualunque pasticceria c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 9 / 82

28 PinoPasticcino è un Pasticcere E se fossi entrato in una pasticceria a caso? In realtà avrei potuto risolvere il mio problema entrando in una qualunque pasticceria Infatti, in base alla mia esperienza, ogni Pasticceria è in grado di rispondere al messaggio ordinatorta(torta,data) per il solo fatto di appartenere alla categoria dei pasticceri. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 9 / 82

29 PinoPasticcino è un Pasticcere E se fossi entrato in una pasticceria a caso? In realtà avrei potuto risolvere il mio problema entrando in una qualunque pasticceria Infatti, in base alla mia esperienza, ogni Pasticceria è in grado di rispondere al messaggio ordinatorta(torta,data) per il solo fatto di appartenere alla categoria dei pasticceri. Una categoria di agenti che condividono il medesimo comportamento prende il nome di classe c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 9 / 82

30 Classi in Java Classe Una classe è un modello che specifica lo stato e il comportamento di tutte le sue istanze (oggetti). c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 10 / 82

31 Classi in Java Classe Una classe è un modello che specifica lo stato e il comportamento di tutte le sue istanze (oggetti). Tutti gli oggetti sono istanze di una classe c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 10 / 82

32 Classi in Java Classe Una classe è un modello che specifica lo stato e il comportamento di tutte le sue istanze (oggetti). Tutti gli oggetti sono istanze di una classe Il metodo utilizzato da un oggetto per rispondere a un messaggio è determinato dalla classe da cui è stato istanziato c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 10 / 82

33 Classi in Java Classe Una classe è un modello che specifica lo stato e il comportamento di tutte le sue istanze (oggetti). Tutti gli oggetti sono istanze di una classe Il metodo utilizzato da un oggetto per rispondere a un messaggio è determinato dalla classe da cui è stato istanziato Tutti gli oggetti ottenuti istanziando una medesima classe rispondono ad un certo messaggio mediante il medesimo metodo c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 10 / 82

34 Esempio: la classe Pasticceria c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 11 / 82

35 Sommario: Protocolli e contratti 1 Nozioni base della programmazione OO La programmazione ad oggetti Protocolli e contratti Classi 2 Primi esempi di classi e oggetti La classe ConsoleOutputManager Creazione degli oggetti Invocazione di un metodo La classe ConsoleInputManager 3 Prototipi e segnature 4 La classe String 5 Variabili e tipi Dichiarazione e definizione di variabili Tipi primitivi e tipi riferimento c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 12 / 82

36 Programmi Java Un programma è costituito da un insieme di oggetti che cooperano per realizzare un obiettivo c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 13 / 82

37 Programmi Java Un programma è costituito da un insieme di oggetti che cooperano per realizzare un obiettivo Per realizzare un programma dovremo: c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 13 / 82

38 Programmi Java Un programma è costituito da un insieme di oggetti che cooperano per realizzare un obiettivo Per realizzare un programma dovremo: conoscere le classi (fondamentali) che abbiamo a disposizione c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 13 / 82

39 Programmi Java Un programma è costituito da un insieme di oggetti che cooperano per realizzare un obiettivo Per realizzare un programma dovremo: conoscere le classi (fondamentali) che abbiamo a disposizione costruire e memorizzare gli oggetti che ci servono per realizzare un compito c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 13 / 82

40 Programmi Java Un programma è costituito da un insieme di oggetti che cooperano per realizzare un obiettivo Per realizzare un programma dovremo: conoscere le classi (fondamentali) che abbiamo a disposizione costruire e memorizzare gli oggetti che ci servono per realizzare un compito inviare messaggi agli oggetti c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 13 / 82

41 ConsoleOutputManager (prog.io) Contratto: ConsoleOutputManager Le sue istanze realizzano canali di comunicazione con il dispositivo di output standard, cioè con il video. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 15 / 82

42 ConsoleOutputManager (prog.io) Contratto: ConsoleOutputManager Le sue istanze realizzano canali di comunicazione con il dispositivo di output standard, cioè con il video. La classe mette a disposizione metodi che consentono di visualizzare a video vari tipi di dati c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 15 / 82

43 ConsoleOutputManager (prog.io) Contratto: ConsoleOutputManager Le sue istanze realizzano canali di comunicazione con il dispositivo di output standard, cioè con il video. La classe mette a disposizione metodi che consentono di visualizzare a video vari tipi di dati Ad un istanza di questa classe possiamo inviare il messaggio println("ecco il mio primo programma") che ha l effetto di visualizzare sul video la stringa "Ecco il mio primo programma" c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 15 / 82

44 Costruzione degli oggetti Espressione di creazione new nome del costruttore(lista argomenti) c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 17 / 82

45 Costruzione degli oggetti Espressione di creazione new nome del costruttore(lista argomenti) new: operatore unario prefisso c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 17 / 82

46 Costruzione degli oggetti Espressione di creazione new nome del costruttore(lista argomenti) new: operatore unario prefisso nome del costruttore(lista argomenti): operando c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 17 / 82

47 Costruzione degli oggetti Espressione di creazione new nome del costruttore(lista argomenti) new: operatore unario prefisso nome del costruttore(lista argomenti): operando nome del costruttore: coincide con il nome della classe c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 17 / 82

48 Costruzione degli oggetti Espressione di creazione new nome del costruttore(lista argomenti) new: operatore unario prefisso nome del costruttore(lista argomenti): operando nome del costruttore: coincide con il nome della classe lista argomenti: dipende dai costruttori che la classe mette a disposizione c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 17 / 82

49 Costruzione degli oggetti Espressione di creazione new nome del costruttore(lista argomenti) new: operatore unario prefisso nome del costruttore(lista argomenti): operando nome del costruttore: coincide con il nome della classe lista argomenti: dipende dai costruttori che la classe mette a disposizione Il risultato dell espressione è un riferimento all oggetto costruito c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 17 / 82

50 Costruzione degli oggetti Espressione di creazione new nome del costruttore(lista argomenti) new: operatore unario prefisso nome del costruttore(lista argomenti): operando nome del costruttore: coincide con il nome della classe lista argomenti: dipende dai costruttori che la classe mette a disposizione Il risultato dell espressione è un riferimento all oggetto costruito new ConsoleOutputManager() c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 17 / 82

51 Espressioni Le espressioni sono sequenze di operatori e di operandi costruite secondo le regole sintattiche del linguaggio. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 19 / 82

52 Espressioni Le espressioni sono sequenze di operatori e di operandi costruite secondo le regole sintattiche del linguaggio. Hanno un tipo complessivo determinato dagli operatori e dal tipo degli operandi c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 19 / 82

53 Espressioni Le espressioni sono sequenze di operatori e di operandi costruite secondo le regole sintattiche del linguaggio. Hanno un tipo complessivo determinato dagli operatori e dal tipo degli operandi Danno luogo, in fase di esecuzione, a un valore c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 19 / 82

54 Espressione di creazione Espressione di creazione new nome del costruttore(lista argomenti) Tipo la classe dell oggetto costruito c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 20 / 82

55 Espressione di creazione Espressione di creazione new nome del costruttore(lista argomenti) Tipo la classe dell oggetto costruito Valore il riferimento a un oggetto della classe specificata dal costruttore c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 20 / 82

56 Espressione di creazione Espressione di creazione new nome del costruttore(lista argomenti) Tipo la classe dell oggetto costruito Valore il riferimento a un oggetto della classe specificata dal costruttore Esempio new ConsoleOutputManager() Tipo ConsoleOutputManager c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 20 / 82

57 Espressione di creazione Espressione di creazione new nome del costruttore(lista argomenti) Tipo la classe dell oggetto costruito Valore il riferimento a un oggetto della classe specificata dal costruttore Esempio new ConsoleOutputManager() Tipo ConsoleOutputManager Valore riferimento ad un oggetto di tipo ConsoleOutputManager c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 20 / 82

58 Memorizzazione del riferimento Dobbiamo: dichiarare una variabile del tipo opportuno c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 22 / 82

59 Memorizzazione del riferimento Dobbiamo: dichiarare una variabile del tipo opportuno assegnarle il valore restituito dall espressione di creazione c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 22 / 82

60 Memorizzazione del riferimento Dobbiamo: dichiarare una variabile del tipo opportuno assegnarle il valore restituito dall espressione di creazione ConsoleOutputManager video; video = new ConsoleOutputManager(); c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 22 / 82

61 Memorizzazione del riferimento Dobbiamo: dichiarare una variabile del tipo opportuno assegnarle il valore restituito dall espressione di creazione ConsoleOutputManager video; video = new ConsoleOutputManager(); Oppure ConsoleOutputManager video = new ConsoleOutputManager(); c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 22 / 82

62 Situazione in memoria ConsoleOutputManager video = new ConsoleOutputManager(); c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 24 / 82

63 Situazione in memoria ConsoleOutputManager video = new ConsoleOutputManager(); video è una variabile che contiene come valore un riferimento a un oggetto c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 24 / 82

64 Situazione in memoria ConsoleOutputManager video = new ConsoleOutputManager(); video è una variabile che contiene come valore un riferimento a un oggetto l oggetto contiene le informazioni che ne caratterizzano lo stato le informazioni che servono alla JVM per la gestione dell oggetto c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 24 / 82

65 Invocazione di un metodo Invocazione di metodo riferimento a oggetto.nome metodo(lista argomenti) c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 26 / 82

66 Invocazione di un metodo Invocazione di metodo riferimento a oggetto.nome metodo(lista argomenti) Esempio ConsoleOutputManager video = new ConsoleOutputManager(); video.println("ecco il mio primo programma"); c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 26 / 82

67 L applicazione import prog.io.consoleoutputmanager; class PrimoProgramma { public static void main(string[] args) { ConsoleOutputManager video = new ConsoleOutputManager(); } video.println("ecco il mio primo programma!"); } c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 28 / 82

68 Compilazione ed esecuzione Compilazione > javac PrimoProgramma.java c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 30 / 82

69 Compilazione ed esecuzione Compilazione > javac PrimoProgramma.java Viene generato il file PrimoProgramma.class contenente il bytecode c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 30 / 82

70 Compilazione ed esecuzione Compilazione > javac PrimoProgramma.java Viene generato il file PrimoProgramma.class contenente il bytecode Esecuzione > java PrimoProgramma Ecco il mio primo programma! c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 30 / 82

71 ConsoleInputManager (prog.io) Contratto: ConsoleInputManager Le sue istanze realizzano canali di comunicazione con il dispositivo di input standard, cioè la tastiera. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 31 / 82

72 ConsoleInputManager (prog.io) Contratto: ConsoleInputManager Le sue istanze realizzano canali di comunicazione con il dispositivo di input standard, cioè la tastiera. Messaggi: readline legge una riga di testo c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 31 / 82

73 ConsoleInputManager (prog.io) Contratto: ConsoleInputManager Le sue istanze realizzano canali di comunicazione con il dispositivo di input standard, cioè la tastiera. Messaggi: readline legge una riga di testo readint legge un numero intero... c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 31 / 82

74 Esempio import prog.io.consoleoutputmanager; import prog.io.consoleinputmanager; class Pappagallo { public static void main(string[] args) { //predisposizione dei canali di comunicazione ConsoleInputManager tastiera = new ConsoleInputManager(); ConsoleOutputManager video = new ConsoleOutputManager(); } } //lettura e comunicazione String messaggio = tastiera.readline(); video.println(messaggio); c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 33 / 82

75 Sommario: Protocolli e contratti 1 Nozioni base della programmazione OO La programmazione ad oggetti Protocolli e contratti Classi 2 Primi esempi di classi e oggetti La classe ConsoleOutputManager Creazione degli oggetti Invocazione di un metodo La classe ConsoleInputManager 3 Prototipi e segnature 4 La classe String 5 Variabili e tipi Dichiarazione e definizione di variabili Tipi primitivi e tipi riferimento c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 34 / 82

76 Segnature e prototipi Segnatura di un metodo È costituita da: nome del metodo lista degli argomenti con il relativo tipo c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 35 / 82

77 Segnature e prototipi Segnatura di un metodo È costituita da: nome del metodo lista degli argomenti con il relativo tipo Esempio println(string s) nome lista argomenti c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 35 / 82

78 Segnature e prototipi Prototipo di un metodo È costituito da: tipo del valore restituito dal metodo nome del metodo lista degli argomenti con il relativo tipo c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 36 / 82

79 Segnature e prototipi Prototipo di un metodo È costituito da: tipo del valore restituito dal metodo nome del metodo lista degli argomenti con il relativo tipo prototipo = tipo restituito + segnatura c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 36 / 82

80 Segnature e prototipi Prototipo di un metodo È costituito da: tipo del valore restituito dal metodo nome del metodo lista degli argomenti con il relativo tipo prototipo = tipo restituito + segnatura Esempio String readline() tipo restituito nome lista argomenti (vuota) c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 36 / 82

81 Alcuni metodi di ConsoleOutputManager tipo restituito nome del metodo argomenti void print int void print riferimento a String void println nessuno void println int void println riferimento a String void È una parola chiave Indica che il metodo non restituisce nulla c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 37 / 82

82 Alcuni metodi di ConsoleOutputManager tipo restituito nome del metodo argomenti void print int void print riferimento a String void println nessuno void println int void println riferimento a String Overloading ( sovraccaricamento ) Possibilità di avere metodi con lo stesso nome ma segnatura diversa Il compilatore è in grado di capire quale metodo intendiamo invocare in base al modo in cui lo invochiamo (alla lista degli argomenti che forniamo) c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 37 / 82

83 Sommario: Protocolli e contratti 1 Nozioni base della programmazione OO La programmazione ad oggetti Protocolli e contratti Classi 2 Primi esempi di classi e oggetti La classe ConsoleOutputManager Creazione degli oggetti Invocazione di un metodo La classe ConsoleInputManager 3 Prototipi e segnature 4 La classe String 5 Variabili e tipi Dichiarazione e definizione di variabili Tipi primitivi e tipi riferimento c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 38 / 82

84 La classe String Contratto: String Le istanze della classe String modellano stringhe, cioè sequenze arbitrarie di caratteri c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 40 / 82

85 La classe String Contratto: String Le istanze della classe String modellano stringhe, cioè sequenze arbitrarie di caratteri Mette a disposizione (fra gli altri) un costruttore che riceve come argomento una sequenza di caratteri compresa fra doppi apici c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 40 / 82

86 La classe String Contratto: String Le istanze della classe String modellano stringhe, cioè sequenze arbitrarie di caratteri Mette a disposizione (fra gli altri) un costruttore che riceve come argomento una sequenza di caratteri compresa fra doppi apici String s = new String("Java"); c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 40 / 82

87 La classe String Contratto: String Le istanze della classe String modellano stringhe, cioè sequenze arbitrarie di caratteri Mette a disposizione (fra gli altri) un costruttore che riceve come argomento una sequenza di caratteri compresa fra doppi apici String s = new String("Java"); Vari metodi per la manipolazione di stringhe c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 40 / 82

88 Letterali di tipo String Letterali Rappresentano i valori di un tipo all interno di un programma Java c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 42 / 82

89 Letterali di tipo String Letterali Rappresentano i valori di un tipo all interno di un programma Java Un letterale di tipo String è una sequenza di caratteri compresi fra doppi apici c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 42 / 82

90 Letterali di tipo String Letterali Rappresentano i valori di un tipo all interno di un programma Java Un letterale di tipo String è una sequenza di caratteri compresi fra doppi apici Il linguaggio fornisce un meccanismo implicito per creare oggetti di tipo String ricorrendo semplicemente al letterale c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 42 / 82

91 Letterali di tipo String Letterali Rappresentano i valori di un tipo all interno di un programma Java Un letterale di tipo String è una sequenza di caratteri compresi fra doppi apici Il linguaggio fornisce un meccanismo implicito per creare oggetti di tipo String ricorrendo semplicemente al letterale String s = "Java"; è equivalente a String s = new String("Java"); c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 42 / 82

92 Sequenze di escape Alcuni caratteri che hanno un significato particolare possono essere rappresentati mediante sequenze di escape: Sequenza di escape Unicode Significato \b \u0008 backspace BS \t \u0009 horizontal tab HT \n \u000a linefeed LF \f \u000c form feed FF \r \u000d carriage return CR \" \u0022 double quote \ \u0027 single quote \\ \u005c backslash c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 44 / 82

93 public String touppercase() tipo restituito nome del metodo argomenti riferimento a String touppercase nessuno c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 46 / 82

94 public String touppercase() tipo restituito nome del metodo argomenti riferimento a String touppercase nessuno Restituisce come risultato il riferimento a una nuova stringa costituita dagli stessi caratteri della stringa che esegue il metodo, con l eccezione delle lettere minuscole, che sono trasformate nelle maiuscole corrispondenti. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 46 / 82

95 public String touppercase() tipo restituito nome del metodo argomenti riferimento a String touppercase nessuno Restituisce come risultato il riferimento a una nuova stringa costituita dagli stessi caratteri della stringa che esegue il metodo, con l eccezione delle lettere minuscole, che sono trasformate nelle maiuscole corrispondenti. Esempi (1) String s1 = "Ciao"; String s2 = s1.touppercase(); c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 46 / 82

96 public String touppercase() tipo restituito nome del metodo argomenti riferimento a String touppercase nessuno Restituisce come risultato il riferimento a una nuova stringa costituita dagli stessi caratteri della stringa che esegue il metodo, con l eccezione delle lettere minuscole, che sono trasformate nelle maiuscole corrispondenti. Esempi (1) String s1 = "Ciao"; String s2 = s1.touppercase(); (2) String s2 = "Ciao".toUpperCase(); c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 46 / 82

97 Osservazione... String messaggio = tastiera.readline(); String risposta = messaggio.touppercase();... messaggio String "Ciao" risposta String "CIAO" c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 48 / 82

98 public String tolowercase() tipo restituito nome del metodo argomenti riferimento a String tolowercase nessuno c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 50 / 82

99 public String tolowercase() tipo restituito nome del metodo argomenti riferimento a String tolowercase nessuno Contratto Restituisce come risultato il riferimento a una nuova stringa costituita dagli stessi caratteri della stringa che esegue il metodo, con l eccezione delle lettere maiuscole, che sono trasformate nelle minuscole corrispondenti. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 50 / 82

100 public String tolowercase() tipo restituito nome del metodo argomenti riferimento a String tolowercase nessuno Contratto Restituisce come risultato il riferimento a una nuova stringa costituita dagli stessi caratteri della stringa che esegue il metodo, con l eccezione delle lettere maiuscole, che sono trasformate nelle minuscole corrispondenti. Esempi (1) String s1 = "CIAO"; String s2 = s1.tolowercase(); c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 50 / 82

101 public String tolowercase() tipo restituito nome del metodo argomenti riferimento a String tolowercase nessuno Contratto Restituisce come risultato il riferimento a una nuova stringa costituita dagli stessi caratteri della stringa che esegue il metodo, con l eccezione delle lettere maiuscole, che sono trasformate nelle minuscole corrispondenti. Esempi (1) String s1 = "CIAO"; String s2 = s1.tolowercase(); (2) String s2 = "ciao".tolowercase(); c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 50 / 82

102 public int length() tipo restituito nome del metodo argomenti int length nessuno c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 52 / 82

103 public int length() tipo restituito nome del metodo argomenti int length nessuno Contratto Restituisce un valore di tipo int, cioè un numero intero, uguale alla lunghezza della stringa rappresentata dall oggetto che esegue il metodo. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 52 / 82

104 public int length() tipo restituito nome del metodo argomenti int length nessuno Contratto Restituisce un valore di tipo int, cioè un numero intero, uguale alla lunghezza della stringa rappresentata dall oggetto che esegue il metodo. (1) "Ciao".length() restituisce 4 c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 52 / 82

105 public int length() tipo restituito nome del metodo argomenti int length nessuno Contratto Restituisce un valore di tipo int, cioè un numero intero, uguale alla lunghezza della stringa rappresentata dall oggetto che esegue il metodo. (1) "Ciao".length() restituisce 4 (2) "".length() restituisce 0 c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 52 / 82

106 public int length() tipo restituito nome del metodo argomenti int length nessuno Contratto Restituisce un valore di tipo int, cioè un numero intero, uguale alla lunghezza della stringa rappresentata dall oggetto che esegue il metodo. (1) "Ciao".length() restituisce 4 (2) "".length() restituisce 0 Il letterale "" rappresenta la stringa vuota c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 52 / 82

107 public String concat(string str) tipo restituito nome del metodo argomenti riferimento a String concat riferimento a String c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 54 / 82

108 public String concat(string str) tipo restituito nome del metodo argomenti riferimento a String concat riferimento a String Contratto Restituisce un riferimento alla stringa ottenuta concatenando alla stringa che esegue il metodo la stringa fornita come argomento. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 54 / 82

109 public String concat(string str) tipo restituito nome del metodo argomenti riferimento a String concat riferimento a String Contratto Restituisce un riferimento alla stringa ottenuta concatenando alla stringa che esegue il metodo la stringa fornita come argomento. (1) String nome = "Pippo"; String risposta = "Buongiorno ".concat(nome).concat("!"); c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 54 / 82

110 public String concat(string str) tipo restituito nome del metodo argomenti riferimento a String concat riferimento a String Contratto Restituisce un riferimento alla stringa ottenuta concatenando alla stringa che esegue il metodo la stringa fornita come argomento. (1) String nome = "Pippo"; String risposta = "Buongiorno ".concat(nome).concat("!"); (2) String nome = "Pippo"; String risposta = "Buongiorno ".concat(nome.concat("!")); c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 54 / 82

111 L operatore + su stringhe Fornisce un abbreviazione per la concatenazione di stringhe: c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 56 / 82

112 L operatore + su stringhe Fornisce un abbreviazione per la concatenazione di stringhe: String nome = "Pippo"; String risposta = "Buongiorno ".concat(nome).concat("!"); è equivalente a String risposta = "Buongiorno " + nome + "!"; c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 56 / 82

113 Spezzare le righe Non è possibile scrivere letterali di tipo String che occupino più di una riga String mess = "Questo e un messaggio particolarmente lungo che dobbiamo spezzare in piu righe"; non viene accettata dal compilatore c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 58 / 82

114 Spezzare le righe Non è possibile scrivere letterali di tipo String che occupino più di una riga String mess = "Questo e un messaggio particolarmente lungo che dobbiamo spezzare in piu righe"; non viene accettata dal compilatore String mes = "Questo e un messaggio particolarmente " + "lungo che dobbiamo spezzare in piu " + "righe"; c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 58 / 82

115 public String substring(int begin, int end) tipo restituito nome del metodo argomenti riferimento a String substring due int c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 60 / 82

116 public String substring(int begin, int end) tipo restituito nome del metodo argomenti riferimento a String substring due int Contratto Restituisce il riferimento a una stringa formata dai caratteri che vanno dalla posizione begin fino alla posizione end - 1 della stringa che esegue il metodo. Le posizioni di una stringa lunga n vanno da 0 a n 1. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 60 / 82

117 public String substring(int begin, int end) tipo restituito nome del metodo argomenti riferimento a String substring due int Contratto Restituisce il riferimento a una stringa formata dai caratteri che vanno dalla posizione begin fino alla posizione end - 1 della stringa che esegue il metodo. Le posizioni di una stringa lunga n vanno da 0 a n 1. Esempi (1) "distruggere" ha 11 caratteri, d è in posizione 0, la ultima e in posizione 10 c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 60 / 82

118 public String substring(int begin, int end) tipo restituito nome del metodo argomenti riferimento a String substring due int Contratto Restituisce il riferimento a una stringa formata dai caratteri che vanno dalla posizione begin fino alla posizione end - 1 della stringa che esegue il metodo. Le posizioni di una stringa lunga n vanno da 0 a n 1. Esempi (1) "distruggere" ha 11 caratteri, d è in posizione 0, la ultima e in posizione 10 (2) "distruggere".substring(2, 9) fornisce come risultato un riferimento alla stringa "strugge" c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 60 / 82

119 public String substring(int begin) tipo restituito nome del metodo argomenti riferimento a String substring un int c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 62 / 82

120 public String substring(int begin) tipo restituito nome del metodo argomenti riferimento a String substring un int Contratto Restituisce un riferimento a una stringa formata da tutti i caratteri della stringa che esegue il metodo che si trovano tra la posizione specificata nell argomento e la fine della stringa. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 62 / 82

121 public String substring(int begin) tipo restituito nome del metodo argomenti riferimento a String substring un int Contratto Restituisce un riferimento a una stringa formata da tutti i caratteri della stringa che esegue il metodo che si trovano tra la posizione specificata nell argomento e la fine della stringa. Esempi "distruggere".substring(8) restituisce un riferimento alla stringa "ere". c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 62 / 82

122 Sommario: Protocolli e contratti 1 Nozioni base della programmazione OO La programmazione ad oggetti Protocolli e contratti Classi 2 Primi esempi di classi e oggetti La classe ConsoleOutputManager Creazione degli oggetti Invocazione di un metodo La classe ConsoleInputManager 3 Prototipi e segnature 4 La classe String 5 Variabili e tipi Dichiarazione e definizione di variabili Tipi primitivi e tipi riferimento c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 63 / 82

123 Java: linguaggio fortemente tipato Il tipo di ogni variabile e di ogni espressione che appare in un programma può essere identificato leggendo il testo del programma e, dunque, è noto al momento della compilazione. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 65 / 82

124 Java: linguaggio fortemente tipato Il tipo di ogni variabile e di ogni espressione che appare in un programma può essere identificato leggendo il testo del programma e, dunque, è noto al momento della compilazione. Durante la compilazione sono effettuati tutti i controlli relativi alla compatibilità dei tipi e sono stabilite eventuali conversioni implicite c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 65 / 82

125 Java: linguaggio fortemente tipato Il tipo di ogni variabile e di ogni espressione che appare in un programma può essere identificato leggendo il testo del programma e, dunque, è noto al momento della compilazione. Durante la compilazione sono effettuati tutti i controlli relativi alla compatibilità dei tipi e sono stabilite eventuali conversioni implicite Le nozioni di variabile, tipo ed espressione, sono fondamentali in tutti i linguaggi di programmazione c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 65 / 82

126 Espressioni e tipi Esempio Il significato dell espressione x + y dipende dai tipi delle variabili x e y. int x; int y; operatore + denota una somma tra numeri interi c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 67 / 82

127 Espressioni e tipi Esempio Il significato dell espressione x + y dipende dai tipi delle variabili x e y. int x; int y; operatore + denota una somma tra numeri interi risultato è di tipo int c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 67 / 82

128 Espressioni e tipi Esempio Il significato dell espressione x + y dipende dai tipi delle variabili x e y. int x; int y; operatore + denota una somma tra numeri interi risultato è di tipo int valutazione viene fatta sommando i valori contenuti nelle due variabili c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 67 / 82

129 Espressioni e tipi Esempio Il significato dell espressione x + y dipende dai tipi delle variabili x e y. String x; String y; operatore + denota una concatenazione tra stringhe c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 69 / 82

130 Espressioni e tipi Esempio Il significato dell espressione x + y dipende dai tipi delle variabili x e y. String x; String y; operatore + denota una concatenazione tra stringhe risultato è un riferimento a un oggetto di tipo String c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 69 / 82

131 Espressioni e tipi Esempio Il significato dell espressione x + y dipende dai tipi delle variabili x e y. String x; String y; operatore + denota una concatenazione tra stringhe risultato è un riferimento a un oggetto di tipo String valutazione viene costruita la stringa costituita dalla concatenazione di quella a cui fa riferimento x con quella a cui fa riferimento y c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 69 / 82

132 Espressioni e tipi Esempio Il significato dell espressione x + y dipende dai tipi delle variabili x e y. String x; int y; operatore + denota una concatenazione tra stringhe c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 71 / 82

133 Espressioni e tipi Esempio Il significato dell espressione x + y dipende dai tipi delle variabili x e y. String x; int y; operatore + denota una concatenazione tra stringhe risultato è un riferimento a un oggetto di tipo String c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 71 / 82

134 Espressioni e tipi Esempio Il significato dell espressione x + y dipende dai tipi delle variabili x e y. String x; int y; operatore + denota una concatenazione tra stringhe risultato è un riferimento a un oggetto di tipo String valutazione viene costruita la stringa costituita dalla concatenazione di quella a cui fa riferimento x con quella che rappresenta il valore memorizzato in y (conversione implicita) c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 71 / 82

135 Dichiarazione e definizione di variabili Dichiarazione di variabili Tipo var1, var2,... ; c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 73 / 82

136 Dichiarazione e definizione di variabili Dichiarazione di variabili Tipo var1, var2,... ; Definizione di variabili Tipo var1 = espr1, var2 = espr2,... ; c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 73 / 82

137 Dichiarazione e definizione di variabili Dichiarazione di variabili Tipo var1, var2,... ; Definizione di variabili Tipo var1 = espr1, var2 = espr2,... ; Esempio int x, y; String s; int i = 4, j = 3; String nome = "pippo"; c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 73 / 82

138 Tipi primitivi e tipi riferimento Tipi primitivi (come int) Una variabile di tipo primitivo può essere immaginata come una scatola in grado di contenere direttamente un valore c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 74 / 82

139 Tipi primitivi e tipi riferimento Tipi primitivi (come int) Una variabile di tipo primitivo può essere immaginata come una scatola in grado di contenere direttamente un valore Tipi riferimento (come String) Una variabile di un tipo riferimento contiene il riferimento che permette di accedere all oggetto riferito. c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 74 / 82

140 Tipi primitivi e tipi riferimento Tipi primitivi (come int) Una variabile di tipo primitivo può essere immaginata come una scatola in grado di contenere direttamente un valore Tipi riferimento (come String) Una variabile di un tipo riferimento contiene il riferimento che permette di accedere all oggetto riferito. Esempio int i = 10; String s = pippo; i s 10 String "pippo" c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 74 / 82

141 Tipi primitivi e tipi riferimento Tipi primitivi byte short int long char boolean float double c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 76 / 82

142 Tipi primitivi e tipi riferimento Tipi primitivi byte short int long char boolean float double Tipi riferimento classi interfacce array c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 76 / 82

143 Assegnamento fra variabili di tipo primitivo int x, y; y = x; x x y y = x y 10 c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 78 / 82

144 Assegnamento fra variabili di tipo riferimento String x, y; y = x; x x String String y "pippo" y = x y "pippo" c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 80 / 82

145 Il letterale null Rappresenta un valore assegnabile a tutte le variabili di tipo riferimento c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 82 / 82

146 Il letterale null Rappresenta un valore assegnabile a tutte le variabili di tipo riferimento Indica convenzionalmente che la variabile non fa riferimento ad alcun oggetto c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 82 / 82

147 Il letterale null Rappresenta un valore assegnabile a tutte le variabili di tipo riferimento Indica convenzionalmente che la variabile non fa riferimento ad alcun oggetto Il tentativo di accedere a un oggetto tramite un riferimento null provoca un errore di esecuzione (si richiede un servizio ad un oggetto inesistente) c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 82 / 82

148 Il letterale null Rappresenta un valore assegnabile a tutte le variabili di tipo riferimento Indica convenzionalmente che la variabile non fa riferimento ad alcun oggetto Il tentativo di accedere a un oggetto tramite un riferimento null provoca un errore di esecuzione (si richiede un servizio ad un oggetto inesistente) Esempio String s; s = null; int x = s.length(); //ERRORE IN FASE DI ESECUZIONE c 2005 Pearson Education Italia Capitolo 2 - Protocolli e contratti 82 / 82

Alberti, DICo Università degli Studi di MIlano 1

Alberti, DICo Università degli Studi di MIlano 1 Introduzione agli oggetti Corso di laurea in Informatica Interagiamo con oggetti di uso quotidiano, conoscendone le funzioni, ma non il funzionamento interno Gli oggetti sono scatole nere dotate di interfaccia

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 16 Tipi riferimento e stringhe. Carla Limongelli.

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 16 Tipi riferimento e stringhe. Carla Limongelli. Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 16 Tipi riferimento e stringhe Carla Limongelli Maggio 2010 Definizione di metodi 1 Contenuti Tipi riferimento Stringhe e oggetti String

Dettagli

Uso degli oggetti. Un programma Java. è un insieme di oggetti, ognuno istanza di una classe, che si inviano messaggi

Uso degli oggetti. Un programma Java. è un insieme di oggetti, ognuno istanza di una classe, che si inviano messaggi Uso degli oggetti Uso di oggetti predefiniti attraverso l'invio di messaggi. Il concetto di metodo; argomenti e restituzione di valori; segnatura e prototipo di un metodo. Il concetto di overloading. Le

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input

Dettagli

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici

Dettagli

Introduzione all uso degli oggetti in Java (parte II) Walter Didimo

Introduzione all uso degli oggetti in Java (parte II) Walter Didimo Introduzione all uso degli oggetti in Java (parte II) Walter Didimo Esercizio all uso di oggetti Nel corso viene fornita una classe i cui oggetti permettono di leggere dati immessi dalla tastiera la classe

Dettagli

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Introduzione al linguaggio Java - Input/Output, Variabili, Tipi Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De

Dettagli

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe

STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 11 Array A. Miola Dicembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Array 1 Contenuti Il problema degli studenti da promuovere

Dettagli

Modulo 2: Strutture fondamentali della programmazione Java

Modulo 2: Strutture fondamentali della programmazione Java Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Un semplice programma Java: Presentazione di un primo Esempio; Introduzione alla struttura; Compilazione ed esecuzione. Argomenti

Dettagli

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: Tipi di dato Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi: esprimere in modo sintetico la loro rappresentazione in memoria, e un insieme di operazioni ammissibili permettere

Dettagli

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

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura

Dettagli

Stringhe e Array. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Stringhe e Array. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni La Classe String In Java le stringhe, a differenza della maggior parte dei linguaggi di programmazione, non sono array di caratteri (char), bensì

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario La classe String Lettura da input di dati numerici (tipo int) Stampa di dati numerici Uno sguardo al codice Esercizi 21/03/2011 2

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 06 Programmazione Java Alfonso Miola Ottobre 2011 http://www.dia.uniroma3.it/~java/fondinf/ Programmazione Java 1 Contenuti Il

Dettagli

TIPI PRIMITIVI E CLASSI WRAPPER

TIPI PRIMITIVI E CLASSI WRAPPER I tipi primitivi come oggetti Package java.lang In varie situazioni, può essere comodo poter trattare i tipi primitivi come oggetti per passarli per riferimento a una funzione quando una funzione pretende

Dettagli

Metodi statici. Dichiarazione e chiamata di metodi statici

Metodi statici. Dichiarazione e chiamata di metodi statici Metodi statici Dichiarazione e chiamata di metodi statici Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 07 Oggetti e Java Marzo 2010 Programmazione Java 1 Contenuti Il linguaggio Java Applicazioni Java e il metodo main Esempi di applicazioni

Dettagli

Lezione 6 programmazione in Java

Lezione 6 programmazione in Java Lezione 6 programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Le costanti I vettori Cos è un vettore Come si usa I vari tipi di vettori Esempi

Dettagli

Uso di metodi statici. Walter Didimo

Uso di metodi statici. Walter Didimo Uso di metodi statici Walter Didimo Metodi di istanza Fino ad ora abbiamo imparato a creare oggetti e ad invocare metodi su tali oggetti i metodi venivano eseguiti dagli oggetti un metodo invocato su un

Dettagli

Questi lucidi provengono dal capitolo 2 di:

Questi lucidi provengono dal capitolo 2 di: Questi lucidi provengono dal capitolo 2 di: Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Oggetti e classi Gli oggetti sono entità di un programma che si possono manipolare

Dettagli

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Introduzione Programmazione Java

Introduzione Programmazione Java Introduzione Programmazione Java Paolo Tomeo paolo.tomeo@poliba.it Regole basilari Java è case sensitive quindi prestare attenzione alle maiuscole Il commento si inserisce con // all'inizio della linea

Dettagli

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009 Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Uso di classi e oggetti. Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Uso di classi e oggetti. Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Uso di classi e oggetti Prof. Francesco Acarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Tipi di dati Tipi primitivi: interi Java fornisce otto tipi primitivi indipendenti dall implementazione

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del

Dettagli

Introduzione alle classi e agli oggetti. Walter Didimo

Introduzione alle classi e agli oggetti. Walter Didimo Introduzione alle classi e agli oggetti Walter Didimo Classi e oggetti La classe rappresenta l unità di base della programmazione ad oggetti: una classe definisce una tipologia di elementi (cioè una categoria

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Oggetti e Classi Metodi Parametri Variabili di istanza Costruttori Esercizi Paradigma Object-Oriented Il paradigma OO

Dettagli

Programmazione con Java

Programmazione con Java Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:

Dettagli

Introduzione alla Programmazione in Java attraverso un esempio commentato

Introduzione alla Programmazione in Java attraverso un esempio commentato Corso di Studi in Informatica Programmazione 1 corso B prof. Elio Giovannetti Introduzione alla Programmazione in Java attraverso un esempio commentato Programmazione 1 B - a.a. 2002-03 53 Modello di memoria

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

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

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Cosa è un calcolatore? Hardware Processore Memoria Periferiche Funzionamento Esegue istruzioni elementari Esegue istruzioni molto velocemente Deve essere programmato Il

Dettagli

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Dettagli

Costanti e Variabili

Costanti e Variabili Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli

Dettagli

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

4 - Tipi di dato primitivi

4 - Tipi di dato primitivi 4 - Tipi di dato primitivi 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

Definizione di classi. Walter Didimo

Definizione di classi. Walter Didimo Definizione di classi Walter Didimo Definizione di classi Fino ad ora abbiamo imparato a: creare oggetti da classi già pronte usare gli oggetti creati, invocando metodi la creazione e l uso di oggetti

Dettagli

Unità B2.1. I tipi di dato

Unità B2.1. I tipi di dato (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: char int float double boolean short long String conversione implicita conversione esplicita (B) CONOSCENZA E COMPETENZA Rispondere

Dettagli

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Ing. Gianluca Caminiti Sommario ( OOP ) Programmazione Object-Oriented Incapsulamento, Ereditarietà, Polimorfismo Richiami

Dettagli

LINGUAGGI DI PROGRAMMAZIONE!

LINGUAGGI DI PROGRAMMAZIONE! LINGUAGGI DI PROGRAMMAZIONE! Il potere espressivo di un linguaggio è! caratterizzato da:! quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente)! quali istruzioni

Dettagli

Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona e Sommario e del corso Concetti base linguaggio Editare, compilare e correggere programmi e Docente e Contatti Alessandro

Dettagli

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi

Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi Basi della programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione

Dettagli

Esonero di Informatica I. Ingegneria Medica

Esonero di Informatica I. Ingegneria Medica Di seguito sono elencati una serie di domande tipo esonero ; i quiz vogliono dare un sistema di autovalutazione e di confronto allo studente che deve prepararsi alla prova di metà corso. Il numero e l

Dettagli

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori

Puntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per

Dettagli

Tipi di dato semplici

Tipi di dato semplici Tipi di dato semplici Perché dichiarare una variabile? 2 Una variabile rappresenta uno spazio di memoria centrale Prima dell esecuzione del programma deve essere chiaro quanto spazio serve al programma

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - 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 Corso di Laurea

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: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

I CARATTERI E LE STRINGHE

I CARATTERI E LE STRINGHE I CARATTERI E LE STRINGHE IL CODICE ASCII Per memorizzare i simboli grafici corrispondenti ai caratteri bisogna associare un numero intero a ciascuno di essi Il codice ASCII / æski/ (American Standard

Dettagli

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array

Classi e array. Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Classi e array Viene ora affrontato un problema di definizione di una classe in cui una variabile d istanza è di tipo array Si vuole definire una classe Polinomio per la rappresentazione di polinomi a

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti Programmazione ad oggetti OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha l obiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale.

Dettagli

Riassunto. I mattoni di base di un programma Java. Oggi. Un programma complicato. Oggi. Perché è complicato? Stefano Mizzaro 1.

Riassunto. I mattoni di base di un programma Java. Oggi. Un programma complicato. Oggi. Perché è complicato? Stefano Mizzaro 1. I mattoni di base di un programma Java Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione, lezione 2 28 settembre

Dettagli

Introduzione alla programmazione. Walter Didimo

Introduzione alla programmazione. Walter Didimo Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata

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

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

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

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione II Tatiana Zolo zolo@cs.unipr.it 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento

Dettagli

Programmazione I. 11 gennaio Considerate la seguente gerarchia di classi (rappresentata mediante un diagramma UML): +f(double x):

Programmazione I. 11 gennaio Considerate la seguente gerarchia di classi (rappresentata mediante un diagramma UML): +f(double x): Programmazione I 11 gennaio 2012 Matricola:........................................................................ Cognome:........................................................................ Nome:...........................................................................

Dettagli

Definizione di metodi

Definizione di metodi Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 9 Definizione di metodi Carla Limongelli Novembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Definizione di metodi 1 Contenuti

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 06 Programmi e Oggetti Software Marzo 2010 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il

Dettagli

Perché il linguaggio C?

Perché il linguaggio C? Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare

Dettagli

Tipi di dato primitivi

Tipi di dato primitivi Tipi di dato primitivi (oltre int) Tipi di dato primitivi int (già trattati) Valori logici (ricordati) Valori reali Valori carattere Informatica - A.A. 2009/2010 - Tipi di dato 2 1 Valori logici (il caso

Dettagli

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati Caratteristiche Il Linguaggio C Linguaggio sequenziale (lineare), imperativo, strutturato a blocchi usabile anche come linguaggio di sistema software di base sistemi operativi compilatori... FI - Algoritmi

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 2 Programmi e Oggetti Software Alfonso Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Programmi e Oggetti Software

Dettagli

Programmazione a oggetti

Programmazione a oggetti Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software

Dettagli

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),

Dettagli

Il linguaggio C. Puntatori e dintorni

Il linguaggio C. Puntatori e dintorni Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;

Dettagli

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008

Array di array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 03. A. Miola Febbraio 2008 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa Array di array A. Miola Febbraio 8 http://www.dia.uniroma.it/~java/fondinf/ Array di array Contenuti Array bidimensionali creazione

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

Caratteri e stringhe

Caratteri e stringhe Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

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

Dettagli

Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Introduzione a C# Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni C#: Strumento Principe per.net Primo linguaggio orientato alle componenti della famiglia C/C++ Tutto è DAVVERO un oggetto

Dettagli

Definizione di una classe

Definizione di una classe Classi Le istruzioni sono raggruppate per ottenere una medesima funzionalità (metodo). Le diverse funzionalità (metodi) relative a un oggetto sono raggruppate nella classe. La classe assegna un nome comune

Dettagli

L Allocazione Dinamica della Memoria

L Allocazione Dinamica della Memoria L Allocazione Dinamica della Memoria Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario Questo documento

Dettagli

La Gestione della Memoria. Carla Binucci e Walter Didimo

La Gestione della Memoria. Carla Binucci e Walter Didimo La Gestione della Memoria Carla Binucci e Walter Didimo Esecuzione di programmi Java L esecuzione di un programma Java richiede: la compilazione del codice Java in bytecode Java (un linguaggio macchina

Dettagli

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Programmazione Java Struttura di una classe, Costruttore, Riferimento this Programmazione Java Struttura di una classe, Costruttore, Riferimento this romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento

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 04 Programmi e Oggetti Software Alfonso Miola Ottobre 2012 http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Dettagli

Gestione dei compiti

Gestione dei compiti 1 of 18 23/10/2006 103 Gestione dei compiti Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Domanda n. 1 Argomento: Logica booleana Domanda: Qual e' il risultato

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi.. 2010/2011 Sommario Conversione di tipo:casting Tipo enumerativo lgebra Booleana Esercizi Conversione di tipo:casting Il casting o conversione di tipo avviene

Dettagli

3) Descrivere l architettura di un elaboratore tramite astrazione a livelli

3) Descrivere l architettura di un elaboratore tramite astrazione a livelli Di seguito sono elencati una serie di domande tipo esonero ; i quiz vogliono dare un sistema di autovalutazione e di confronto allo studente che deve prepararsi alla prova di metà corso. Il numero e l

Dettagli

la traduzione dei programmi ed introduzione a Java

la traduzione dei programmi ed introduzione a Java la traduzione dei programmi ed introduzione a Java programmi descrizioni di algoritmi effettuate tramite linguaggi di programmazione lo stesso algoritmo, fissato un linguaggio di programmazione, può essere

Dettagli

TIPI PRIMITIVI: LIMITI

TIPI PRIMITIVI: LIMITI TIPI PRIMITIVI: LIMITI I tipi primitivi sono i "mattoni elementari" del linguaggio In varie situazioni può però essere necessario trattare i tipi primitivi come oggetti quando una funzione pretende come

Dettagli

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1

Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Informatica 1 Tipi e dichiarazioni in C++ C++ - Tipi e dichiarazioni 1 Cosa è il C++ E un linguaggio di programmazione derivato dal C Può essere usato per modificare il SO Unix e i suoi derivati (Linux)

Dettagli

Capitolo 1. Introduzione. Cay S. Horstmann Concetti di informatica e fondamenti di Java

Capitolo 1. Introduzione. Cay S. Horstmann Concetti di informatica e fondamenti di Java Capitolo 1 Introduzione Cay S. Horstmann Concetti di informatica e fondamenti di Java Obiettivi del capitolo Capire il significato dell attività di programmazione Imparare a riconoscere le componenti più

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso

Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso AA 2015/2016 Tutor: Vincenzo Lomonaco vincenzo.lomonaco@unibo.it Programma Introduzione al calcolatore

Dettagli

Introduzione alla programmazione in C++

Introduzione alla programmazione in C++ Introduzione alla programmazione in C++ Fondamenti di Informatica Roberto BASILI Marzo, 2007 La Programmazione Programmare significa: Determinare la natura del problema (analisi) Definire una decomposizione

Dettagli