introduzione alla programmazione in Java classi, oggetti ed altro

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "introduzione alla programmazione in Java classi, oggetti ed altro"

Transcript

1 introduzione alla programmazione in Java classi, oggetti ed altro

2 nomi file ed estensioni file.java: sorgenti Java creati con editor javac.exe: compilatore Java es.: per compilare il sorgente in pippo.java usare javac pippo.java file.class: codice bytecode generati da compilatore Java java.exe: macchina virtuale Java es.: per eseguire il programma in pippo.class usare java pippo gen 04 IGEA 03-04, (c) FdA 2

3 ciao mondo! // tradizionale primo programma Java public class Ciao { public static void main(string[] args) { System.out.println("Ciao mondo!"); } } // deve essere nel file Ciao.java gen 04 IGEA 03-04, (c) FdA 3

4 schema di programma public class <nomeclasse> { public static void main(string[] args) { <istruzione1> <istruzione2> } } // ogni istruzione terminata da ; // salvato nel file <nomeclasse>.java gen 04 IGEA 03-04, (c) FdA 4

5 classi e oggetti componenti fondamentali che caratterizzano i linguaggi orientati agli oggetti (object-oriented) stretto legame: classe = fabbrica di oggetti gen 04 IGEA 03-04, (c) FdA 5

6 oggetti /1 componenti software che hanno proprietà specifiche contengono dati ed algoritmi per elaborarli offrono servizi agli utenti accesso ai dati elaborazione dei dati chi sono gli utenti? tipicamente, altri oggetti (è un mondo chiuso?) gen 04 IGEA 03-04, (c) FdA 6

7 oggetti /2 chi crea gli oggetti? le classi chi chiede a una classe di creare un oggetto? tipicamente, un altro oggetto tutti gli oggetti creati da una stessa classe appartengono alla stessa categoria ed hanno comportamento simile non sono eguali; es. le persone gen 04 IGEA 03-04, (c) FdA 7

8 oggetti /3 "Ciao mondo!" è un oggetto della classe String ogni stringa è un oggetto della classe String stringa = sequenza di caratteri scritti fra doppi apici "stringa di 23 caratteri" gli apici non vengono conteggiati gen 04 IGEA 03-04, (c) FdA 8

9 classi /1 fabbriche di oggetti ciascuna specializzata per una determinata categoria di oggetti definite dal programmatore riusabili esistono migliaia di classi già pronte, organizzate in package ogni package contiene molte classi gen 04 IGEA 03-04, (c) FdA 9

10 classi /2 public class Ciao { public static void main(string[] args) { System.out.println("Ciao mondo!"); } } la classe Ciao è in realtà molto particolare e non cattura lo spirito delle classi vere non ha neanche la capacità di fabbricare oggetti per definire classi più interessanti occorrono vari altri ingredienti gen 04 IGEA 03-04, (c) FdA 10

11 esempio: classe Rectangle package java.awt abstract windowing toolkit costruisce oggetti Rectangle dati: coordinate (intere) del vertice nord-ovest base altezza algoritmi: modifica la dimensione/posizione del rettangolo confronta rettangolo con altre forme geometriche test di intersezione/contenimento ecc. accedi ai dati gen 04 IGEA 03-04, (c) FdA 11

12 usare la classe Rectangle import java.awt.rectangle; // per usare la classe public class Rettangolo { public static void main(string[] args) { System.out.println(new Rectangle(10, 20, 100, 40)); } } l istruzione import consente di (ri)utilizzare una classe preesistente l operatore new causa la costruzione di un oggetto output: java.awt.rectangle[x=10,y=20,width=100,height=40] significa: oggetto di tipo Rectangle contenente i dati specificati gen 04 IGEA 03-04, (c) FdA 12

13 costruzione di oggetti sintassi: new <nomeclasse>(<parametri>); parametri: n 0 dati, separati da virgole se 0 parametri le parentesi tonde sono comunque richieste esempio new Rectangle(10, 20, 30, 40); esercizi: quali parametri hanno senso? new Persona( ); new Esame( ); gen 04 IGEA 03-04, (c) FdA 13

14 variabili /1 nomi simbolici associati ad aree di RAM contenenti dati regole per i nomi: sequenze di caratteri alfanumerici (lettera o cifra) è ammesso il carattere non alfanumerico '_' il primo carattere non può essere cifra maiuscole e minuscole differiscono CASA è un nome differente da casa non sono ammesse le parole riservate o parole chiavi (es. new, class ) gen 04 IGEA 03-04, (c) FdA 14

15 variabili /2 nomi legali pippo, Pluto, Zorro2, A25, b2b, casa_mia, Informatica_Grafica, system_var, MiNeSTRone, New nomi illegali 3volte, mamma mia, 007, public consuetudine (ma non regola): i nomi delle variabili iniziano con lettera minuscola gen 04 IGEA 03-04, (c) FdA 15

16 variabili /3 ogni variabile è contraddistinta da un tipo che specifica quali categoria di dati può essere immagazzinata nella corrispondente area di RAM intero, reale, stringa ecc. per ogni variabile usata deve esserne dichiarato il tipo ogni variabile deve essere inizializzata deve esserle attribuito un valore mediante assegnazione gen 04 IGEA 03-04, (c) FdA 16

17 variabili /4 esempi int voto; dichiarazione di variabile intera voto = 28; inizializzazione int eta = 22; dichiarazione + inizializzazione una variabile inizializzata può subire altre assegnazioni, purché non sia stata dichiarata final final int voto = 28; la variabile non potrà subire ulteriori assegnazioni gen 04 IGEA 03-04, (c) FdA 17

18 sintassi dichiarazione <nometipo> <nomevariabile>; <nometipo> <nomevariabile> = <espressione>; esempio: String s = "Informatica grafica"; gen 04 IGEA 03-04, (c) FdA 18

19 variabili oggetto /1 il tipo è una classe tengono traccia degli oggetti creati esempio: Rectangle cucina; cucina = new Rectangle(0, 0, 30, 40); Rectangle bagno = new Rectangle (40, 0, 30, 35); gen 04 IGEA 03-04, (c) FdA 19

20 variabili oggetto /2 ogni variabile oggetto inizializzata è un riferimento ad uno specifico oggetto cucina Rectangle x=0 y=0 width=30 height=40 gen 04 IGEA 03-04, (c) FdA 20

21 variabili oggetto /3 Rectangle k = cucina; cucina k Rectangle x=0 y=0 width=30 height=40 gen 04 IGEA 03-04, (c) FdA 21

22 esempio import java.awt.rectangle; public class Rettangolo { public static void main(string[] args) { Rectangle cucina = new Rectangle(0, 0, 30, 40); Rectangle k = cucina; System.out.println(cucina); System.out.println(k); k.translate(10, 10); // invocazione metodo System.out.println(cucina); System.out.println(k); } } gen 04 IGEA 03-04, (c) FdA 22

23 output esempio java.awt.rectangle[x=0,y=0,width=30,height=40] java.awt.rectangle[x=0,y=0,width=30,height=40] java.awt.rectangle[x=10,y=10,width=30,height=40] java.awt.rectangle[x=10,y=10,width=30,height=40] NB La maniera standard di invocare un algoritmo (metodo) su un oggetto è scriverne il nome subito dopo il riferimento all'oggetto, usando un punto separatore gen 04 IGEA 03-04, (c) FdA 23

24 definire classi: ingredienti specificatore di accesso public, o altro nome classe per convenzione, inizia per lettera maiuscola (ma non è una regola!) costruttore/i (da sviluppare successivamente) operazioni che vengono svolte nelle creazioni di oggetti (istanziazioni) variabili istanza (o campi, field) dati contenuti negli oggetti metodi algoritmi che si possono invocare su ciascun oggetto (istanza) gen 04 IGEA 03-04, (c) FdA 24

25 specificatore accesso e nome public chiunque può chiedere alla classe di costruire oggetti per poi utilizzarli esistono anche protected e private nome: stesse regole per la definizione dei nomi di variabili public class Contatore { } gen 04 IGEA 03-04, (c) FdA 25

26 variabili istanza /1 variabili contenute in ogni istanza dovrebbero essere incapsulate fisicamente nascoste all'utente dell'oggetto, il quale sa che esistono ma non può accedervi direttamente (ma allora come fa ad usarle?) incapsulamento = principio fondamentale dell'ingegneria del software, su cui si basa la programmazione o-o in pratica, spesso private: in tal caso, solo la classe stessa può accedervi direttamente gen 04 IGEA 03-04, (c) FdA 26

27 variabili istanza /2 si dichiarano all'interno della classe rispettando la sintassi della dichiarazione variabili sintassi: <specificatorediaccesso> <tipovariabile> <nomevariabile>; gen 04 IGEA 03-04, (c) FdA 27

28 esempio public class Contatore { private int valore; } una classe può contenere un qualunque numero (anche nullo) di variabili istanza gen 04 IGEA 03-04, (c) FdA 28

29 metodi: ingredienti /1 specificatore di accesso public o altro specifica chi può invocare il metodo un metodo pubblico può essere invocato da tutti tipo restituito tipologia dell'output dell'algoritmo, ovvero tipo di informazione (numero, stringa, o altro) restituita dal metodo alla sua terminazione istruzione return return <espressione>; fa terminare il metodo in esecuzione e restituisce il risultato specificato gen 04 IGEA 03-04, (c) FdA 29

30 metodi: ingredienti /2 nome solite regole parametri formali lista di variabili separate da virgole per ciascuna variabili si specifica il tipo costituiscono di fatto l'input dell'algoritmo corpo o implementazione istruzioni Java che realizzano l'algoritmo o che consentono l'accesso alle varabili istanza gen 04 IGEA 03-04, (c) FdA 30

31 metodi: sintassi <specificatorediaccesso> <tiporestituito> <nomemetodo> (<tipoparametro1> <nomeparametro1>, <tipoparametro2> <nomeparametro2>, ) { } <istruzioni del corpo> gen 04 IGEA 03-04, (c) FdA 31

32 metodi: esempio public class Contatore { private int valore = 0; // var. istanza public int getvalore() { // no parametri return valore; } public void contasu() {// non restituisce info valore = valore + 1; // valore++; } } gen 04 IGEA 03-04, (c) FdA 32

33 usare i servizi di un oggetto sintassi accesso a variabili istanza (se consentito) <riferimentooggetto>.<nomevari abileistanza> invocazione metodo (se consentito) <riferimentooggetto>.<nomemeto do>(<listaparametri>) parentesi obbligatorie, anche se non vi sono parametri da specificare gen 04 IGEA 03-04, (c) FdA 33

34 esempio Contatore contascatti = new Contatore(); System.out.println (contascatti.getvalore()); contascatti.contasu(); System.out.println (contascatti.getvalore()); gen 04 IGEA 03-04, (c) FdA 34

35 collaudare classi definizione di una seconda classe che esegua istruzioni di collaudo scriveremo una classe TestContatore public class TestContatore { public static void main(string[] args) { Contatore contascatti = new Contatore(); } non istanzia oggetti! uso di un ambiente di collaudo interattivo (avanzato) } System.out.println(contaScatti.getValore()); contascatti.contasu(); System.out.println(contaScatti.getValore()); ad esempio, BlueJ (http://www.bluej.org) gen 04 IGEA 03-04, (c) FdA 35

36 costruttori /1 un costruttore è un metodo il cui nome è eguale a quello della classe in cui è definito automaticamente eseguito quando una classe istanzia un oggetto new <nomeclasse>(<parametri>) attiva il costruttore della classe <nomeclasse> attivazione diversa dai metodi "normali", invocati tramite nome gen 04 IGEA 03-04, (c) FdA 36

37 costruttori /2 debbono la denominazione "costruttore" alla loro attivazione in fase di "costruzione" di un oggetto contengono istruzioni per inizializzare gli oggetti esistono in ogni classe anche se non li definiamo esplicitamente? gen 04 IGEA 03-04, (c) FdA 37

38 costruttori: sintassi <specificatorediaccesso> <nomeclasse> (<tipoparametro1> <nomeparametro1>, <tipoparametro2> <nomeparametro2>, ) { <istruzioni> } la sintassi è leggermente differente da quella di un metodo "normale" manca il tipo restituito gen 04 IGEA 03-04, (c) FdA 38

39 parametri del costruttore determinano l'uso di new new <nomeclasse>(<e1>,,<ek>) se e solo se il costruttore <nomeclasse> ha k 0 parametri formali i k valori sono detti parametri attuali i tipi dei k parametri formali corrispondono ordinatamente ai tipi dei k parametri attuali gen 04 IGEA 03-04, (c) FdA 39

40 costruttori: esempio public Contatore(int inizio) { valore = inizio; } inizio è il parametro del metodo la variabile istanza valore dell'oggetto creato viene inizializzata con il valore contenuto nel parametro inizio new Contatore(<espressione>) <espressione> stabilisce il valore di inizio gen 04 IGEA 03-04, (c) FdA 40

41 risorse static benché le classi siano primariamente "fabbriche di oggetti" esse possono anche contenere variabili e metodi metodi e variabili statiche (static) sono risorse di classe: la classe, invece di un oggetto, può contenere, eccezionalmente, variabili e metodi è un uso "improprio" motivazioni discusse più avanti nel corso esempio rilevante: la classe Math gen 04 IGEA 03-04, (c) FdA 41

42 classe Math classe standard di Java: java.lang.math non necessita import è automaticamente importata, come altre classi fondamentali (tutte quelle del package java.lang) contiene un gran numero di metodi numerici potenze reali, esponenziali, logaritmi, funzioni trigonometriche ecc. contiene le costanti matematiche e (costante di Nepero) e π gen 04 IGEA 03-04, (c) FdA 42

43 uso di risorse statiche: sintassi costanti (variabili final) <nomeclasse>.<nomevariabile> es.: Math.E e Math.PI metodi <nomeclasse>.<nomemetodo> (<parametri>) es.: Math.sqrt(<espressione>), Math.cos(<espressione>) gen 04 IGEA 03-04, (c) FdA 43

44 esempio /1 calcolo delle radici di un'equazione di 2 grado delta = b*b 4*a*c; r = Math.sqrt(delta); x1 = (-b + r) / (2*a); x2 = (-b r) / (2*a); se delta < 0? gen 04 IGEA 03-04, (c) FdA 44

45 esempio /2 area del cerchio di raggio r r * r * Math.PI esponenziale e x Math.exp(x) log 10 x Math.log(x) / Math.log(10) gen 04 IGEA 03-04, (c) FdA 45

46 tipi di dati fondamentali tipi numerici interi, reali tipo booleano true, false caratteri simboli 'a', 'B', '$' stringhe "questa è una stringa" variabili oggetto riferimenti ad oggetti le variabili stringa sono riferimenti ad oggetti della classe String gen 04 IGEA 03-04, (c) FdA 46

47 Primitive Data Types Keyword Description Size/Format (integers) byte Byte-length integer 8-bit two's complement short Short integer 16-bit two's complement int Integer 32-bit two's complement long Long integer 64-bit two's complement (real numbers) float Single-precision floating point 32-bit IEEE 754 double Double-precision floating point 64-bit IEEE 754 (other types) char A single character 16-bit Unicode character boolean A boolean value (true, false) true or false gen 04 IGEA 03-04, (c) FdA 47

48 tipi numerici int e double sono i più usati int: 32 bit in complemento a due double: 64 bit in virgola mobile le costanti numeriche sono di norma int o double è int è double 1.0 è double (3 miliardi) non è int, perché? gen 04 IGEA 03-04, (c) FdA 48

49 operazioni binarie aritmetiche +, -, *, /, % % definito fra interi: resto della divisione intera se operandi omogenei (stesso tipo), risultato omogeneo int + int dà int (rischio overflow) int / int dà int (inaspettato!) se operandi eterogenei si applica il principio della "conservazione dell'informazione" int * double dà double gen 04 IGEA 03-04, (c) FdA 49

50 esempio errore classico int a = 1; int b = 1; int c = 2; correzione: double media = (a+b+c) / 3; // assegna 1 double media = (a+b+c) / 3.; // assegna gen 04 IGEA 03-04, (c) FdA 50

51 assegnazioni sintassi <nomevariabile> = <espressione>; i tipi debbono essere compatibili e non deve essere persa informazione tipi identici sono compatibili <variabile_double> = <valore_int>; (va bene) <variabile_int> = <valore_double>; (non va bene) gen 04 IGEA 03-04, (c) FdA 51

52 tipo boolean ammette i valori true (vero) e false (falso) esempio boolean pari = true; gen 04 IGEA 03-04, (c) FdA 52

53 stringhe /1 sono oggetti (classe String) i tipi numerici non lo sono es.: "ciao".length() dà 4, il numero di caratteri che compone la stringa "ciao" length() è un metodo della classe String sono immutabili un'istanza di String non è modificabile in Java esiste un'altra classe per realizzare stringhe mutabili: StringBuffer gen 04 IGEA 03-04, (c) FdA 53

54 stringhe /2 le variabili oggetto di tipo String possono venir direttamente inizializzate String s = "stringa" e String s = new String("stringa") sono di fatto equivalenti è un caso particolare gen 04 IGEA 03-04, (c) FdA 54

55 concatenazione + operatore + String s1 = "casa", s2 = " e", s3 = " chiesa"; notare la sintassi semplificata String s = s1 + s2 + s3; System.out.println(s) visualizza casa e chiesa se si scrive <stringa> + <numero>, <numero> viene convertito (provvisoriamente) in stringa e viene fatta la concatenazione System.out.println("ciao" + 9) visualizza ciao9 gen 04 IGEA 03-04, (c) FdA 55

56 metodi /1 charat(<intero>) restituisce il carattere che si trova nella posizione specificata la prima posizione è 0 length() restituisce il numero di caratteri che compone la stringa se 0, la stringa è vuota "" compareto(<stringa>) restituisce un valore < 0 (oggetto precede <stringa>), = 0 (oggetto eguale a <stringa>) o > 0 (oggetto segue <stringa>) equals(<stringa>) restituisce true se e solo se oggetto eguale <stringa> gen 04 IGEA 03-04, (c) FdA 56

57 metodi /2 substring(<intero1>, <intero2>) restituisce una (nuova) stringa, sottostringa dell'oggetto, ottenuta considerando i caratteri dalla posizione <intero1> a <intero2> (escluso) substring(<intero>) restituisce una (nuova) stringa, sottostringa dell'oggetto, ottenuta considerando i caratteri dalla posizione <intero> a fine stringa tolowercase() restituisce una (nuova) stringa ottenuta dall'oggetto sostituendo a ciascuna lettera maiuscola la corrispondente minuscola touppercase() restituisce una (nuova) stringa ottenuta dall'oggetto sostituendo a ciascuna lettera minuscola la corrispondente maiuscola molti altri gen 04 IGEA 03-04, (c) FdA 57

58 conversione implicita numero stringa tramite + // assegna "1ciao" String s1 = 1 + "ciao"; // assegna "casa3" String s2 = "casa" + 3; // assegna "10" String s = "" + 10; gen 04 IGEA 03-04, (c) FdA 58

59 esempio System.out.print("domani alle" + 10) visualizza domani alle10 System.out.print("Biancaneve e i " " nani") visualizza Biancaneve e i 7 nani System.out.print("" ) visualizza 78 System.out.print(7 + 8) visualizza 15 System.out.print("" + (7 + 8))? gen 04 IGEA 03-04, (c) FdA 59

60 conversione esplicita stringa numero tramite metodi statici Integer.toString(<valore_int>) da int a String esempio metodo statico della classe Integer Integer.parseInt(<stringa>) da String a int metodo statico della classe Integer altri metodi per il tipo double Double.toString(<valore_double>) Double.parseDouble(<stringa>) gen 04 IGEA 03-04, (c) FdA 60

61 errori in Java compile-time: segnalati dal compilatore run-time: segnalati dalla JVM si dicono eccezioni gen 04 IGEA 03-04, (c) FdA 61

62 leggere dati in input /1 operazione complessa in Java InputStreamReader lettore = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(lettore); String s = console.readline(); ma non basta gen 04 IGEA 03-04, (c) FdA 62

63 leggere dati in input /2 se si verificano errori in lettura il metodo readline genera un'eccezione di tipo IOException appartenente ad una categoria particolare di eccezioni (a controllo obbligatorio) più grave della NumberFormatException generata da parseint richiede gestione esplicita gen 04 IGEA 03-04, (c) FdA 63

64 leggere dati in input /3 ogni metodo ove compare la chiamata readline deve avere la dicitura throws IOException da accettare religiosamente, spiegazioni più avanti nel corso es.: public static void main(string[] args) throws IOException { } gen 04 IGEA 03-04, (c) FdA 64

65 riepilogo lettura import java.io.bufferedreader; import java.io.inputstreamreader; import java.io.ioexception; esempio public class LeggereInput { public static void main(string[] args) throws IOException { InputStreamReader lettore = new InputStreamReader(System.in); BufferedReader console = new BufferedReader(lettore); String s = console.readline(); } } gen 04 IGEA 03-04, (c) FdA 65

66 sovraccarico (overloading) presenza di almeno due metodi con lo stesso nome si dice allora che il nome è sovraccarico (overloaded) i metodi debbono essere distinguibili in base al numero e/o tipo dei parametri substring è un esempio di metodo sovraccarico (classe String) gen 04 IGEA 03-04, (c) FdA 66

67 documentare le classi standard di documentazione: premettere ad ogni classe pubblica e a ciascun suo metodo pubblico un commento che ne descriva l'uso /** Il metodo serve a */ è possibile fare riferimento ai parametri e al valore restituito gen 04 IGEA 03-04, (c) FdA 67

68 esempio /** Il costruttore richiede la specifica della inizializzazione della variabile di start il valore iniziale del conteggio */ public Contatore(int start) { } inizio = start; valore = inizio; memoria = inizio; gen 04 IGEA 03-04, (c) FdA 68

69 utilità javadoc sfrutta i commenti nel formato /** */ e costruisce automaticamente documentazione HTML delle classi e dei metodi uso: javadoc *.java aprire il file index.html gen 04 IGEA 03-04, (c) FdA 69

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

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

Introduzione a Classi e Oggetti

Introduzione a Classi e Oggetti Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO

Corso Base. Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Corso Base Liceo Norberto Rosa Bussoleno Prof. Angelo GIORGIO Java Java è un Linguaggio di Programmazione orientato agli oggetti. Un Linguaggio di Programmazione è un linguaggio ad alto livello, dotato

Dettagli

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

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti

Nascita di Java. Che cos e Java? Caratteristiche di Java. Java: linguaggio a oggetti Nascita di Java L uscita di Java, verso la metà degli anni novanta, fu accolta con molto entusiasmo dalla comunità dei programmatori e dei provider di servizi internet perché permetteva agli utenti del

Dettagli

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

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1. 6 Introduzione al linguaggio C Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C

Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Università di Roma Tre Facoltà di Scienze M.F.N. Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 6 Introduzione al linguaggio C Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

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

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

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

Programmazione in Java Parte I: Fondamenti

Programmazione in Java Parte I: Fondamenti Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice

Dettagli

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Programmazione in Java (I modulo) Lezione 3: Prime nozioni Programmazione in Java (I modulo) Lezione 3: Prime nozioni La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per

Dettagli

Operazioni di scrittura e lettura con periferici in linguaggio Java

Operazioni di scrittura e lettura con periferici in linguaggio Java Operazioni di scrittura e lettura con periferici in linguaggio Java Flussi logici (stream) di output Operazione di scrittura a monitor con uso di stream (flusso logico) di output RAM System.out.println

Dettagli

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

Dettagli

Rappresentazione delle informazioni

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

Dettagli

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

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

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

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE ELEMENTI STATICI E CLASSI STATICHE DISPENSA 15.03 15-03_OOP_Static_[15] Questa dispensa è rilasciata sotto la licenza Creative

Dettagli

Livelli di astrazione

Livelli di astrazione Realizzare Classi Astrazione Perdita di dettaglio Utile nella descrizione, progettazione, implementazione e utilizzo di sistemi complessi Dettagli trascurabili vengono incapsulati in sottosistemi più semplici

Dettagli

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

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

Connessione ad internet

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

Dettagli

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

Introduzione a classi e oggetti

Introduzione a classi e oggetti 2 Introduzione a classi e oggetti Obiettivi del capitolo Capire i concetti di classe e oggetto Apprendere la differenza tra oggetti e riferimenti a oggetti Acquisire familiarità con il procedimento di

Dettagli

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

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

Dettagli

Programmazione AA 2012 2013

Programmazione AA 2012 2013 Programmazione ad Oggetti AA 2012 2013 Contenuti del corso Modulo A Tecniche di programmazione Docente: Prof. Michele Bugliesi Modulo B Tecniche di progetto Docente: Prof. Alessandro Roncato Contenuti

Dettagli

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

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione

Java: Compilazione e Traduzione. Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA. C: Editing, compilazione, esecuzione Fondamenti di Informatica L-B Esercitazione n 3 Introduzione a JAVA A.A. 2007/08 Tutor: Barbara Pettazzoni barbara.pettazzoni@studio.unibo.it Java: Compilazione e Traduzione Editing, compilazione, esecuzione

Dettagli

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

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

Java? Sì, grazie. Scopo del corso

Java? Sì, grazie. Scopo del corso Modulo di Java? Sì, grazie Il linguaggio di Internet? Portabilità su qualunque piattaforma (non solo calcolatori): It works everywhere Supporto e disponibilità di strumenti, librerie e documentazione garantiti

Dettagli

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

Tipo intero. Esempio. Tipo intero: operatori. Programma PortaMonete.java. Tipi base o primitivi

Tipo intero. Esempio. Tipo intero: operatori. Programma PortaMonete.java. Tipi base o primitivi Tipo intero Tipi base o primitivi Tipi interi: int, byte, short, long Tipi float: float, double Caratteri: char Tipo booleano: boolean Operatori numerici e logici La parola chiave int definisce una variabile

Dettagli

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

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

Dettagli

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; }

Esercizi Java. class somma2 { static int somma(int a,int b) {return a+b; } Java è un linguaggio di programmazione c indipendente dalla piattaforma, ovvero un linguaggio di programmazione che permette di compilare i programmi una volta sola e di installarli su computer che usano

Dettagli

Scrivere un programma in Java

Scrivere un programma in Java Programmare in JAVA Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA uff. 0577 234850 - interno: 7102 Stanza 119 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

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

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

Dettagli

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

Aritmetica. Progetto dei programmi

Aritmetica. Progetto dei programmi Aritmetica Un approccio metodologico alla costruzione dei programmi. Tipi di dati primitivi. int, float, double Variabili, dichiarazioni e operazioni Progetto dei programmi 2 Definizione del problema Scenario

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

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

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio

Dettagli

Variabili e tipi di dato

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

Dettagli

Primi programmi in Java. Lezione IV

Primi programmi in Java. Lezione IV Primi programmi in Java Lezione IV Scopo della lezione Realizzare dei semplici programmi scritti in Java. Esercitarsi nelle operazioni necessarie per passare dalla scrittura di codice Java all esecuzione

Dettagli

Alcune regole di base per scrivere un programma in linguaggio C

Alcune regole di base per scrivere un programma in linguaggio C Alcune regole di base per scrivere un programma in linguaggio C Un programma il linguaggio C (listato) viene scritto in formato testo ed archiviato in un file: *.c Per scrivere un listato C si utilizza

Dettagli

CORSO DI PROGRAMMAZIONE

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

Dettagli

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

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 05 La rappresentazione dell informazione Carla Limongelli Ottobre 2011 http://www.dia.uniroma3.it/~java/fondinf/ La rappresentazione

Dettagli

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Introduzione Il meccanismo dell eredità consente di sfruttare delle relazioni tipo/sottotipo, ereditando attributi

Dettagli

Classi ed Oggetti in JAVA

Classi ed Oggetti in JAVA Classi ed Oggetti in JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/

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

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

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

OBIETTIVI SPECIFICI DI APPRENDIMENTO

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

Dettagli

Programmazione Java. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 3. Alfonso Miola Settembre 2007

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

Dettagli

Oggi. Programmazione e laboratorio: introduzione al corso. Docenti: laboratorio. Docenti: teoria. Il corso. Orario.

Oggi. Programmazione e laboratorio: introduzione al corso. Docenti: laboratorio. Docenti: teoria. Il corso. Orario. Programmazione e laboratorio: introduzione al corso Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione per

Dettagli

Tipi di dato-prima parte

Tipi di dato-prima parte Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Meccanica (A-K) Tipi di dato-prima parte Ing. Agnese Pinto 1 di 15 Tipi di dato Sommario Tipi di dato Classificazione dei tipi di dato Tipi

Dettagli

3. La sintassi di Java

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

Dettagli

Corso di Laurea in Informatica e Comunicazione Digitale. a.a. 2006-2007. Interazione Uomo-Macchina. Introduzione a Java.

Corso di Laurea in Informatica e Comunicazione Digitale. a.a. 2006-2007. Interazione Uomo-Macchina. Introduzione a Java. Corso di Laurea in Informatica e Comunicazione Digitale a.a. 2006-2007 Interazione Uomo-Macchina Introduzione a Java Seconda Parte Irene Mazzotta Giovanni Cozzolongo Vincenzo Silvetri 1 Richiami: Java

Dettagli

2 - Introduzione al linguaggio Java

2 - Introduzione al linguaggio Java 2 - Introduzione al linguaggio Java Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo

Dettagli

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

Informatica. Fondamenti della Programmazione in Java. Leonardo Vanneschi

Informatica. Fondamenti della Programmazione in Java. Leonardo Vanneschi Informatica Fondamenti della Programmazione in Java Leonardo Vanneschi 1 1. Fondamenti Il primo programma in Java Il programma che stampa a video una sequenza di caratteri (o stringa): class Esempio {

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

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

LA RAPPRESENTAZIONE DELLE INFORMAZIONI

LA RAPPRESENTAZIONE DELLE INFORMAZIONI ISTITUTO TECNICO E LICEO SCIENTIFICO TECNOLOGICO ANGIOY LA RAPPRESENTAZIONE DELLE INFORMAZIONI Prof. G. Ciaschetti DATI E INFORMAZIONI Sappiamo che il computer è una macchina stupida, capace di eseguire

Dettagli

un programma Java 2.1 Scrittura, compilazione ed esecuzione

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

Dettagli

19. Introduzione al multi-threading

19. Introduzione al multi-threading 19. Introduzione al multi-threading Marco Faella Dip. Ing. Elettrica e Tecnologie dell'informazione Università di Napoli Federico II Corso di Linguaggi di Programmazione II I thread I thread, o processi

Dettagli

Breve riepilogo della puntata precedente:

Breve riepilogo della puntata precedente: Breve riepilogo della puntata precedente: 1. In C, il passaggio dei parametri alle funzioni avviene sempre per copia, ovvero il valore del parametro viene copiato all'interno della variabile che rappresenta

Dettagli

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli

Iprogrammi scritti in Java sono formati da Classi che

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

Dettagli

ARRAY E STRINGHE. G. Frosini Slide 1

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

Dettagli

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); }

/** * VETTORE DINAMICO elementi */ private Vector elementi; /** * METODO COSTRUTTORE */ public coda() { elementi=new Vector(); } import java.util.*; class coda * Questa classe contiene tutti i metodi per la gestione della coda * @author D'Ambrosio Giovanni Classe 4D I.T.I.S. Grottaminarda * @version 26/02/2010 * VETTORE DINAMICO

Dettagli

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

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Incapsulamento Polimorfismo e Overloading Ereditarietà e Overriding Esercizi svolti Esercizi proposti Paradigma OO Le

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

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

Corso Programmazione 1 Capitolo 01: Concetti Elementari

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

Dettagli

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

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

Dettagli

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Sviluppato da Santoro Carlo Maurizio Matricola:0108/528 Sviluppo terminato il: 18/06/06 TRACCIA DEL PROGETTO Si costruisca, utilizzando la

Dettagli

Capitolo 4. Tipi di dati fondamentali. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione

Capitolo 4. Tipi di dati fondamentali. Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Capitolo 4 Tipi di dati fondamentali Cay S. Horstmann Concetti di informatica e fondamenti di Java quarta edizione Obiettivi del capitolo Apprendere l utilizzo di numeri interi e di numeri in virgola mobile

Dettagli

Ogni cosa è un oggetto

Ogni cosa è un oggetto CAPITOLO 2 Ogni cosa è un oggetto Sebbene sia basato sul C++, Java è più di un linguaggio puro orientato agli oggetti. Sia C++ sia Java sono linguaggi ibridi, ma in Java i progettisti si sono accorti che

Dettagli

7 : I DATI E LA LORO STRUTTURA NELLA PROGRAMMAZIONE

7 : I DATI E LA LORO STRUTTURA NELLA PROGRAMMAZIONE 7 : I DATI E LA LORO STRUTTURA NELLA PROGRAMMAZIONE TIPO DI DATO Un tipo di dato è una entità caratterizzata dai seguenti elementi: un insieme X di valori che raprresenta il dominio del tipo di dato; un

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

Generalizzazione di funzioni e di classi. Macro come funzioni generiche

Generalizzazione di funzioni e di classi. Macro come funzioni generiche Alessio Bechini - Corso di - Generalizzazione di funzioni e di classi Il meccanismo di template Macro come funzioni generiche long longmax(long x, long y) { Possibile soluzione int intmax(int x, int y)

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

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

Programmazione. Prima lezione sugli oggetti: agenda

Programmazione. Prima lezione sugli oggetti: agenda Programmazione A.A. 2002-03 I Programmazione Orientata agli Oggetti (1): Principi generali ( Lezione XXV ) Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università

Dettagli

Struttura logica di un programma

Struttura logica di un programma Struttura logica di un programma Tutti i programmi per computer prevedono tre operazioni principali: l input di dati (cioè l inserimento delle informazioni da elaborare) il calcolo dei risultati cercati

Dettagli

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4];

ARRAY BIDIMENSIONALI float [][] mx = new float[3][4]; (float []) [] mx = new float[3][4]; ARRAY BIDIMENSIONALI Si possono definire array di qualunque tipo di dato, quindi anche di altre array float [][] mx = new float[3][4]; ovvero.. (float []) [] mx = new float[3][4]; La loro motivazione (storica)

Dettagli

Gestione delle Eccezioni

Gestione delle Eccezioni Gestione delle Eccezioni Condizioni di Errore Una condizione di errore in un programma può avere molte cause Errori di programmazione Divisione per zero, cast non permesso, accesso oltre i limiti di un

Dettagli

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari

Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari Introduzione allo Scilab Parte 1: numeri, variabili ed operatori elementari Felice Iavernaro Dipartimento di Matematica Università di Bari http://dm.uniba.it/ iavernaro 6 Giugno 2007 Felice Iavernaro (Univ.

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

Prova d Esame 07.04.2006 Compito B

Prova d Esame 07.04.2006 Compito B DOMANDA 1 (6 punti) Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { public static String s1 = "ciao"; protected int n; public General() { n = 3; public

Dettagli

Esempio. Esempio. Linguaggio di Programmazione. Linguaggi di programmazione. Linguaggio di computazione. Linguaggi di programmazione

Esempio. Esempio. Linguaggio di Programmazione. Linguaggi di programmazione. Linguaggio di computazione. Linguaggi di programmazione Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Problema e metodologie di progetto Linguaggio C: Introduzione Monica Mordonini Problema e Algoritmo

Dettagli

La programmazione: tradizionale vs Orientata agli Oggetti (OOP)

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

Dettagli

Programmazione Java (Applicazioni e Applet )

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

Dettagli