Programmazione con Java

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione con Java"

Transcript

1 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: cioè la classe Si ricorda che un programma ad oggetti consiste di oggetti creati a partire da classi diverse che interagiscono fra loro public class NomeClasse { //Definizione Attributi di istanza o di classe //Implementazione Costruttori //Implementazione Metodi Classi e istanze in Java 2 1

2 Come descrivere al programmatore le classi? Esempio classe Punto: «Realizzare una classe che rappresenta un punto in uno spazio bidimensionale a cui attribuire nome Punto. Qualsiasi oggetto creato a partire dalla classe Punto è caratterizzato dall avere un attributo con identificativo x e di tipo int (che rappresenta l ascissa) e un altro attributo con identificativo e di tipo int (che rappresenta l ordinata). Entrambi gli attributi hanno visibilità pubblica.» Classi e istanze in Java 3 Rappresentazione in UML La classe Punto in un diagramma delle classi di design è rappresentata come in figura Punto + x: int + : int Sintassi: Modificatore_di_visibilità Identificatore_dell attributo: tipo Modificatore_di_visibilità: + indica public (appartenente all interfaccia della classe) Classi e istanze in Java 4 2

3 Esempio: la classe Punto Definizione di classe Il nome della classe public class Punto { public int x; public int ; Modificatore di visibilità. public: appartiene all interfaccia Definizione degli attributi di istanza Classi e istanze in Java 5 Come si crea un oggetto? NomeClasse nomereference; nomereference = new NomeClasse(); dichiara, non crea crea nomereference.comando(); nomereference.attributo; accesso all interfaccia pubblica Classi e istanze in Java 6 3

4 Esempio: utilizzo della classe Punto Ogni attributo di istanza possiede un tipo! Punto ;.x = 3;. = 4; int valorex =.x; int valore =.; Classi e istanze in Java 7 Esempio Creare due punti e assegnare i valori per x e 3 e 4 e 50 e 90. Stampare a video quale punto ha x maggiore public class TestPunto1 { public static void main(string a[]) { Punto, p2; p2 = new Punto();.x = 3;. = 4; p2.x = 50; p2. = 90; if(.x >= p2.x) { Sstem.out.println(Il punto ha x maggiore); else { Sstem.out.println(Il punto p2 ha x maggiore); Classi e istanze in Java 8 4

5 Esercizio: classe Rettangolo Rettangolo Creare una classe che rappresenta un rettangolo Rettangolo + base: int + altezza: int Creare 2 istanze della classe assegnando valori per la base e l altezza Calcolare l area e il perimetro di entrambi indicando quale ha area e perimetro maggiore Classi e istanze in Java 9 Esercizio: classe Automobile Auto Creare una classe che rappresenta un auto (proprietario, vel max e velocità corrente) Automobile + proprietario: String + velocitamax: int + velocitacorrente: int Creare tre istanze della stessa assegnando i valori per gli attributi Determinare se le due istanze create hanno lo stesso stato! Classi e istanze in Java 10 5

6 Oggetti e reference Variabili di tipo classe (tipo o p2 dell esempio precedente) sono molto differenti rispetto a variabili di tipo primitivo (come int o char) Punto, p2; p2 = new Punto(); int n, m; n = 10;? m = n; n = 9; Sstem.out.println( n + n + m + m);.x = 1;. = 2; p2 = ; p2.x = 3; p2. = 4; Sstem.out.println( x: +.x + : +.); Sstem.out.println( p2 x: + p2.x + : + p2.); Classi e istanze in Java 11 L operatore = Il risultato di un assegnamento tra reference: fa si che l oggetto a sinistra dell assegnamento sia referenziato anche dal reference a destra 1) Punto, p2;? p2? 2) p2? x 3) p2 = new Punto(); p2 Classi e istanze in Java 12 x x 6

7 L operatore = 4).x = 1; p2 x=1 x 5). = 2; p2 x=1 =2 x 6) p2 = ; p2 x=1 =2 x Classi e istanze in Java 13 Variabili, stack, heap, parametri Vediamo bene cosa succede in memoria Esempi informali di cosa succede quando si dichiara una variabile si istanzia una classe si effettuano assegnamenti si passano parametri Gli esempi sono in forma intuitiva non hanno la pretesa di essere completamente rigorosi sono basati su Java, ma valgono in generale anche per altri linguaggi (es., C++) Suggerimento: nel dubbio, fare i disegni Classi e istanze in Java 14 7

8 Variabili e memoria A livello linguaggio macchina (o Assembler) la memoria è organizzata logicamente come un insieme di locazioni accessibili attraverso un indirizzo NB; in realtà non è la vera organizzazione fisica (vedi Memoria virtuale in Architetture e Sistemi Operativi). A livello di linguaggio evoluto (Java etc.) la memoria è organizzata come un insieme di zone gestite in modo specifico Una variabile corrisponde a un indirizzo di memoria che identifica una locazione (o un insieme di locazioni) allocate nella zona opportuna zone diverse hanno meccanismi di allocazione diversi Classi e istanze in Java 15 Variabili: dove sono, quando esistono? Memoria variabili statiche (attributi di classe) allocate al lancio del programma tempo di vita = esecuzione programma static heap variabili dinamiche allocate a fronte di un azione esplicita new() in Java deallocate quando non servono automaticamente in Java variabili dinamiche (e parametri) allocate all atto della chiamata di un metodo tempo di vita = esecuzione metodo stack Classi e istanze in Java 16 8

9 Il metodo main main è un metodo chiamato automaticamente al momento del lancio di un programma Quindi le variabili dichiarate nel main sono allocate in stack e rimangono allocate fino all uscita dal main (che di solito coincide con la terminazione del programma) Classi e istanze in Java 17 Variabili: locali al metodo, tipo primitivo main { int a, b; a = 50; b = a; a = a+1; stack heap b 50? a 51 50? Classi e istanze in Java 18 9

10 Variabili: locali al metodo, tipo non primitivo class Persona { public String nome; public double costo; stack heap null nome costo main { Persona a,b; a = new Persona(); a.costo = 50000; a.nome = Rossi ; b = new Persona(); b.costo = 3000; b.nome = Verdi ; b = a; a.costo = 6000; Rossi Verdi null nome costo b ? a 37412? Classi e istanze in Java 19 La costante null Si indica con null la costante utilizzata per inizializzare un reference ad un valore di default usato anche per verificare se il reference è stato correttamente inizializzato dopo la dichiarazione Esempio: Punto = null; if ( == null) { else { Sstem.out.println( oggetto già istanziato ); Classi e istanze in Java 20 10

11 Punti essenziali Una variabile di tipo primitivo contiene un valore Una variabile di tipo non primitivo contiene l indirizzo di un oggetto ricordare che arra e stringhe sono oggetti! Puntatore ( pointer ): una variabile che contiene un indirizzo (C, C++ e altri linguaggi) Ref ( reference ) in Java: un puntatore protetto: non si possono eseguire manipolazioni (aritmetiche, logiche etc.) (per fortuna!) tipato : può riferisi solo a oggetti di un certo tipo (controllo a compile time e a run time) Garbage collection (Java, non C++!!) gli oggetti non più referenziato (refcount == 0) sono deallocati automaticamente Classi e istanze in Java 21 Uguaglianza fra ref Uguaglianza fra ref (a == b) il contenuto dei ref è uguale quindi si riferiscono allo stesso oggetto non vuol dire che gli oggetti riferiti sono uguali! main { Persona a,b; a = new Persona(); a.costo = 50000; a.nome = Rossi ; b = new Persona(); b.costo = 50000; b.nome = Rossi ; boolean esito = (a = = b); b = a; esito = (a==b); Classi e istanze in Java 22 11

12 L operatore == altro esempio Esempio: Punto, p2; p2 = new Punto();.x = 1;. = 2; p2.x = 4; p2. = 3; Sstem.out.println( == p2); p2 = ; Sstem.out.println( == p2); p2 x=1 x=2 x=4 =3 x=1 x=2 La prima stampa stampa false, la seconda true p2 x=4 =3 Classi e istanze in Java 23 La keword instanceof Permette di verificare se un oggetto è stato istanziato a partire dalla classe specificata Sintassi: reference instanceof NomeClasse Esempio: Punto ; if ( instanceof Punto) Sstem.out.println( referenzia un oggetto + di tipo Punto ); Classi e istanze in Java 24 12

13 Esercizi Creare una classe che rappresenti una Bicicletta. La bicicletta è caratterizzata da avere un colore, una marca ed il numero di marce. Creare quindi una nuova classe (TestBicicletta) in cui vengono istanziate la bicicletta di colore blu, marca Bianchi e numero di marce 4 e la bicicletta di colore rosso, marca Bianchi e numero di marce 5. Verificare se i due oggetti si trovano nello stesso stato. Creare una classe che rappresenti un DVD. Il DVD è caratterizzato dal titolo, dal nome del regista, dal tipo di film e dalla lunghezza (espressa in minuti) del movie. Creare quindi una nuova classe (TestDVD) in cui vengono istanziati 3 dvd i cui attributi verranno inizializzati dall utente. Stampare quindi a video lo stato dei tre oggetti creati e verificare se i 3 DVD sono uguali. Creare una classe (Moto) che rappresenti una moto (proprietario, modello, colore) Creare tre istanze della stessa assegnando i valori per gli attributi Stampare a video lo stato delle istanze Assegnare due reference allo stesso oggetto Stampare a video (dopo aver verificato) lo stato dell istanza con un solo reference Classi e istanze in Java 25 Esercizi Creare una classe Auto (modello, proprietario, colore) Utilizzare la classe Moto (del punto precedente) Creare una classe TestVeicolo dove si istanziano 2 auto e 2 moto (inserimento dati dall utente), stampare gli stati degli oggetti, indicando se sono auto o moto. Creare una classe StampaVeicoli, dove vengono istanziati 1 moto e 2 auto, dato a tutti il valore di default null, in un secondo momento fare inserire i dati di alcuni oggetti e stampare solo quelli diversi da null. Classi e istanze in Java 26 13

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

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 a Oggetti Lezione 7. Il linguaggio Java: aspetti generali

Programmazione a Oggetti Lezione 7. Il linguaggio Java: aspetti generali Programmazione a Oggetti Lezione 7 Il linguaggio Java: aspetti generali Sommario Obiettivi di JAVA Portabilità: produrre codice eseguibile su più piattaforme (JVM) Affidabilità: Evitare il più possibile

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

Java: Definire Classi e Creare Oggetti

Java: Definire Classi e Creare Oggetti Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 21 marzo 2014 Introduzione Programmare con gli Oggetti Un programma Java è costituito

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 B1 Il concetto di classe 1 Prerequisiti Programmazione elementare Conoscenza dell uso delle funzioni Utilizzo della UML 2 1 Introduzione Gli oggetti reali sono una infinità

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

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

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

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

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

Laboratorio di Programmazione Anno Accademico

Laboratorio di Programmazione Anno Accademico Università di Roma La Sapienza, Facoltà di Ingegneria Corso di Laboratorio di Programmazione Anno Accademico 2004-2005 Corso di Laurea in Ingegneria Informatica Prof. Giuseppe De Giacomo (A L) & Prof.

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

14 - Metodi e Costruttori

14 - Metodi e Costruttori 14 - Metodi e Costruttori 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

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore

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

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

Università degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Allocazione dinamica di memoria

Università degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Allocazione dinamica di memoria di Cassino e del Lazio Meridionale Corso di Informatica Allocazione dinamica di memoria Anno Accademico 2015/2016 Francesco Tortorella Allocazione dinamica di memoria Finora abbiamo considerato variabili

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

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

Fondamenti di Programmazione Prof.ssa Elisa Tiezzi. Programmazione orientata a oggetti

Fondamenti di Programmazione Prof.ssa Elisa Tiezzi. Programmazione orientata a oggetti Fondamenti di Programmazione Prof.ssa Elisa Tiezzi Programmazione orientata a oggetti 1 Programmazione OO Concetti base: dati istruzioni Dati: variabili tipi Istruzioni: istruzioni base strutture di controllo

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

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

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

Strutture Dati Dinamiche

Strutture Dati Dinamiche Strutture Dati Dinamiche Motivazioni Le variabili considerate fino a questo punto devono essere dichiarate staticamente, ossia la loro esistenza, il loro nome e la loro dimensione devono essere previsti

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

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

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

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

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

La classe java.lang.object

La classe java.lang.object La classe java.lang.object In Java: Gerarchia di ereditarietà semplice Ogni classe ha una sola super-classe Se non viene definita esplicitamente una super-classe, il compilatore usa la classe predefinita

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

Concetti base programmazione. Antonio Gallo

Concetti base programmazione. Antonio Gallo Concetti base programmazione Antonio Gallo info@laboratoriolibero.com Programma Insieme di istruzioni: Strtturato Ad oggetti Strutturato Ha una struttura più lineare Basato sui concetti di sequenza, selezione,

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

Introduzione agli oggetti

Introduzione agli oggetti Introduzione agli oggetti Raffaella Brighi, a.a. 2007/08 Corso di Algoritmi e programmazione. A.A. 2007-08 CdL Operatore Informatico Giuridico. L astrazione L assembler e i linguaggi imperativi (fortran,

Dettagli

Definizione di classi

Definizione di classi Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 19 Maggio 2010 1 Contenuti Classi per istanziare oggetti Esempio: la classe Punto Variabili d istanza Metodi d istanza Costruttori Ulteriori

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

Allocazione Dinamica della Memoria

Allocazione Dinamica della Memoria Allocazione Dinamica della Memoria Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Allocazione Dinamica della Memoria 1 / 10 Scelta delle variabili Quando

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

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Outline. Programmazione ad oggetti in Java. La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori

Outline. Programmazione ad oggetti in Java. La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori Programmazione ad oggetti in Java Daniela Micucci Outline La programmazione ad oggetti Classi e istanze Associazioni fra classi Incapsulamento Costruttori 2 Programmazione ad oggetti in Java 1 OOP Java

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

Introduzione a Java. Giovanni Pardini Dipartimento di Informatica Università di Pisa.

Introduzione a Java. Giovanni Pardini Dipartimento di Informatica Università di Pisa. a Java 1 Giovanni Pardini pardinig@di.unipi.it www.di.unipi.it/~pardinig Dipartimento di Informatica Università di Pisa 30 novembre 2009 1 2 3 1 Sintassi di base Hello World! Blocchi e variabili 2 Sintassi

Dettagli

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Dettagli

Introduzione al C++ (continua)

Introduzione al C++ (continua) Introduzione al C++ (continua) I puntatori Un puntatore è una variabile che contiene un indirizzo di memoria pi_greco 3.141592 pi_greco_ptr indirizzo di 3.141592 & DEREFERENZIAZIONE RIFERIMENTO * se x

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

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

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

Uguaglianza e copia di oggetti

Uguaglianza e copia di oggetti Uguaglianza e copia di oggetti Sommario 1. Classi Object e Class 2. Uguaglianza superficiale e uguaglianza profonda 3. Copia superficiale e copia profonda 4. Uguaglianza e copia in classi derivate 1 La

Dettagli

Introduzione ai puntatori

Introduzione ai puntatori Introduzione ai puntatori Algoritmicamente November 19, 2009 http://algoritmicamente.wordpress.com/ 1 Concetti fondamentali Nei linguaggi quali C, C++, il concetto e l'uso dei puntatori è estremamente

Dettagli

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4

Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Corso: Fondamenti di Informatica 1 (gruppo 8-9) Corsi di laurea: Area dell'informazione Questionario di autovalutazione 4 Domanda n. 1 Argomento: Rappresentazione dell'informazione Domanda: Il numero binario

Dettagli

Programmazione II. Lezione 7. Daniele Sgandurra 9/11/2010.

Programmazione II. Lezione 7. Daniele Sgandurra 9/11/2010. Programmazione II Lezione 7 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 9/11/2010 1/24 Programmazione II Lezione 7 9/11/2010 Sommario 1 Gestione della Memoria 2/24 Programmazione II Lezione 7 9/11/2010

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VIII Tatiana Zolo tatiana.zolo@libero.it 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono

Dettagli

Fondamenti di Informatica T. Linguaggio C: i puntatori

Fondamenti di Informatica T. Linguaggio C: i puntatori Linguaggio C: i puntatori Il puntatore E` un tipo di dato, che consente di rappresentare gli indirizzi delle variabili allocate in memoria. Dominio: Il dominio di una variabile di tipo puntatore è un insieme

Dettagli

Lezione 9 programmazione in Java Classi come contenitori

Lezione 9 programmazione in Java Classi come contenitori Lezione 9 programmazione in Java Classi come contenitori Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Gestione della Memoria Dati dinamici e statici Il passaggio

Dettagli

Linguaggi ad oggetti. Linguaggi di Programmazione: Paradigmi di Programmazione. I principali linguaggi ad oggetti. Programmazione ad oggetti.

Linguaggi ad oggetti. Linguaggi di Programmazione: Paradigmi di Programmazione. I principali linguaggi ad oggetti. Programmazione ad oggetti. Linguaggi di Programmazione: Paradigmi di Programmazione Linguaggi ad oggetti I linguaggi di programmazione ad oggetti consentono di applicare metodologie di sviluppo di programmi "object oriented", ossia

Dettagli

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione

Corso: Fondamenti di Informatica (Gruppo 2) a.a Corsi di laurea: Ing. Settore Informazione Corso: Fondamenti di Informatica (Gruppo 2) a.a. 2017-18 Corsi di laurea: Ing. Settore Informazione Questionario a Risposte Multiple per auto-valutazione del Lab05 Domanda n. 1 Argomento: Iterazioni, array

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

Definizione di classi

Definizione di classi Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E05 Definizione di classi A. Miola Novembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Definizione di classi 1 Contenuti

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

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

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

Oggetti Composti (1) Oggetti Composti (2)

Oggetti Composti (1) Oggetti Composti (2) Oggetti Composti () Negli esempi che abbiamo visto finora gli attributi delle classi erano variabili di tipo primitivo E però possibile definire come attributi dei riferimenti ad oggetti di qualche classe

Dettagli

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo.

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo. Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 21 settembre 2015 TEMPO DISPONIBILE: 1 ora e 40

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

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

I costruttori. Il costruttore standard. Esempio di valori di default. Alterare il costruttore standard

I costruttori. Il costruttore standard. Esempio di valori di default. Alterare il costruttore standard I costruttori Servono a inizializzare i valori dei campi degli oggetti. Vengono invocati automaticamente dopo che l oggetto è stato creato. Il costruttore standard Questo tipo di costruzione mette dei

Dettagli

Esonero del corso di Programmazione a Oggetti

Esonero del corso di Programmazione a Oggetti Esonero del corso di Programmazione a Oggetti Roma, 1 dicembre 2005 Considerate le seguenti definizioni di classi e interfacce in Java: interface Fumetto{ void esclama(); void utile(); class Personaggio

Dettagli

Linguaggi ad oggetti (object oriented) LINGUAGGI DI PROGRAMMAZIONE: PARADIGMI DI PROGRAMMAZIONE. Programmazione ad oggetti

Linguaggi ad oggetti (object oriented) LINGUAGGI DI PROGRAMMAZIONE: PARADIGMI DI PROGRAMMAZIONE. Programmazione ad oggetti LINGUAGGI DI PROGRAMMAZIONE: PARADIGMI DI PROGRAMMAZIONE Anno Accademico 2000-2001 Alberto Martelli Programmazione ad Oggetti Parte I Linguaggi ad oggetti (object oriented) I linguaggi di programmazione

Dettagli

Variabili riferimento

Variabili riferimento Variabili riferimento Una variabile riferimento è una variabile il cui tipo è un tipo riferimento. Tipico esempio: oggetto appartenente a una classe Una variabile riferimento non contiene memoria dell

Dettagli

Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo.

Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. Ogni variabile in C è una astrazione di una cella di memoria a cui corrisponde un nome, un contenuto e un indirizzo. int a = 5; a 5 α=&a Esistono in C particolari variabili dette puntatori che possono

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

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Concetti Avanzati versione 2.5 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca

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

Programmazione ad Oggetti. Java Parte II

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

Dettagli

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

Argomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili

Argomenti Avanzati.! I puntatori! Stack! Visibilità delle Variabili Linguaggio C Argomenti Avanzati! I puntatori! Stack! Visibilità delle Variabili 2 ! Il C consente di associare ai tipi di dati nomi definiti dal programmatore, mediante la parola chiave typedef! Dal punto

Dettagli

Esercitazione 11. Liste semplici

Esercitazione 11. Liste semplici Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene

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

Ereditarietà e Polimorfismo. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni

Ereditarietà e Polimorfismo. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Ereditarietà e Polimorfismo Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni Ereditarietà L ereditarietà è lo strumento che permette di costruire nuove classi utilizzando

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

OO puro. Primi concetti di Java. Tipi primitivi. Ogni cosa è un oggetto. Java è object-oriented puro Non come il C+ + (OO ibrido) Lorenzo Bettini

OO puro. Primi concetti di Java. Tipi primitivi. Ogni cosa è un oggetto. Java è object-oriented puro Non come il C+ + (OO ibrido) Lorenzo Bettini Primi concetti di Java Lorenzo Bettini OO puro Java è object-oriented puro Non come il C+ + (OO ibrido) Per compatibilità col C Ogni cosa è un oggetto Gli oggetti si manipolano tramite riferimenti String

Dettagli

Introduzione al C. Unità Gestione Dinamica della Memoria

Introduzione al C. Unità Gestione Dinamica della Memoria Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità Gestione Dinamica della Memoria D. Bloisi, A. Pennisi, S. Peluso, S. Salza Gestione

Dettagli

Introduzione al linguaggio C Puntatori

Introduzione al linguaggio C Puntatori Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016

Dettagli

Gestione dinamica della memoria

Gestione dinamica della memoria Programmazione M-Z Ingegneria e Scienze Informatiche - Cesena A.A. 2016-2017 Gestione dinamica della memoria Pietro Di Lena - pietro.dilena@unibo.it A pessimistic programmer sees the array as half empty.

Dettagli

Introduzione alle classi

Introduzione alle classi Introduzione alle classi Corso di Programmazione 3 - Ingegneria dell Informazione e dell Organizzazione 23 ottobre, 2001 Gino Perna Esempi di semplici classi in C++ INTRODUZIONE AGLI OGGETTI Fin dall'inizio

Dettagli

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object

Programmazione orientata agli oggetti La classe Object, metodi e classi final, this. Object Programmazione orientata agli oggetti La classe, metodi e classi final, this 1 La classe Negli esempi fatti nella prima parte del corso abbiamo definito alcune classi, per esempio Counter e Orologio, senza

Dettagli

Allocazione dinamica della memoria

Allocazione dinamica della memoria Allocazione dinamica della memoria Allocazione statica: limiti Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente la loro esistenza deve essere prevista e dichiarata a priori

Dettagli

Introduzione a Java. Riferimenti

Introduzione a Java. Riferimenti Introduzione a Java Si ringraziano Massimiliano Curcio e Matteo Giacalone 1: Introduction 1 Riferimenti! Java tutorial: http://java.sun.com/docs/books/tutorial/! Il Java tutorial è parte di una più ampia

Dettagli

La programmazione ad oggetti (OOP)

La programmazione ad oggetti (OOP) Oggetti e Classi (CAP 10) Alberto Garfagnini, Marco Mazzocco Università degli studi di Padova 30 Novembre 2011 La programmazione ad oggetti (OOP) È un approccio concettuale alla programmazione (indipendente

Dettagli

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2012

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2012 Cognome Nome Matricola Postazione PC Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a. 2011-12 17 settembre 2012 Testo Il database di un videonoleggio è costituito da due vettori paralleli.

Dettagli

Programmazione orientata agli oggetti Oggetti Composti. Oggetti composti

Programmazione orientata agli oggetti Oggetti Composti. Oggetti composti Programmazione orientata agli oggetti Oggetti Composti 1 - 1 Negli esempi che abbiamo visto finora gli attributi delle classi erano variabili di tipo primitivo E però possibile definire come attributi

Dettagli

Esercizi Programmazione I

Esercizi Programmazione I Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=

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

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

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

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: Array I dati visti finora sono: numeri (interi o razionali), booleani le stringhe (sequenze di caratteri) ma i dati manipolati nelle applicazioni reali sono spesso complessi (o

Dettagli

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati

Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Fondamenti di Informatica e Laboratorio T-AB T-15 Strutture dati Paolo Torroni Dipartimento di Elettronica, Informatica e Sistemistica Università degli Studi di Bologna Anno Accademico 2008/2009 Sommario

Dettagli

Tempo di vita e scope delle variabili

Tempo di vita e scope delle variabili Tempo di vita e scope delle variabili Richiami sulla struttura di un programma C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume tutto in un unico file):

Dettagli