Eredità e Polimorfismo in Java

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Eredità e Polimorfismo in Java"

Transcript

1 Eredità e Polimorfismo in Java Corso di Linguaggi di Programmazione ad Oggetti 1 A.A. 2003/04 A cura di

2 Definizione di Classe Java è un linguaggio object-oriented per cui il costrutto fondamentale è quello di classe: public class MyClass { // definizione di dati membro: // slot e metodi La definizione dei dati membro (slot e metodi) va fattadentro la definizione di classe

3 L oggetto this Per accedere ai dati membro di una classe agendo sull oggetto corrente di una classe si usa la parola chiave this public class MyClass { private int var; public void mymethod(int var) { this.var = var ;

4 Classi e Tipi Primitivi Oltre al costrutto di classe, in Java sono stati definiti 8 tipi primitivi suddivisi nelle seguenti categorie: Logici Numeri interi Numeri in virgola mobile Caratteri

5 Tipi Primitivi Logici boolean Numeri interi byte short int long Numeri in virgola mobile float double Caratteri char

6 Tipi Primitivi: Esempio public static void main(string args[]){ int i = 10 ; char c ; if (i > 0) { c = 'M' ; else c = 'm' ;

7 Tipi Primitivi e Classi Wrapper I tipi primitivi Java non godono delle stesse proprietà delle classe: NON hanno slot e metodi associati NON hanno costruttori Per poter gestire i tipi primitivi come oggetti, sono state definite e implementate apposite classi: le classi Wrapper (del package java.lang)

8 Classi Wrapper Esisteuna classewrapper per ogni tipo primitivo: boolean Boolean byte Byte short Short int Integer long Long float Float double Double char Character

9 Classi Wrapper: Esempio class Integer public Integer(int value) Integer i = new Integer(10) ; public int intvalue() int j = i.intvalue() ; public int compareto(integer anotherinteger) Integer k = new Integer(15) ; i.compareto(k) ;

10 Classi e Interfacce Oltre al costrutto di classe, Java introduce il costruttodi Interfaccia Le interfacce Java (interface) contengono definizioni di costanti e metodi astratti Le costanti devono necessariamente essere inizializzate I metodi sono tutti astratti

11 Classi e Interfacce Per indicare che una classeincorpora il comportamento di una data interfaccia si usa la parola chiave implements Le classi possono implementare una o più interfacce

12 Classi e Interfacce: Esempio public interface MyInterface { int maxdim = 100 ; boolean isfull() ; public class MyClass implements MyInterface { private int dim ; public boolean isfull() { return dim = maxdim ;

13 Classi e Interfacce Un caso particolare di interfacce sono le Marker Interface Tali interfacce non dichiarano al proprio interno nessun metodo (sono vuote) Il loro scopo è quello di marcare le classi che le implementano

14 Classi e Interfacce: Esempio public interface Cloneable Una classe implementa l interfaccia Cloneable per indicare che è possibile clonare tale oggetto, ovvero che si può sovrascrivere il metodo clone() della classe Object.

15 Convenzione sui Nomi In Java, per omogeneità verso le classi standard e verso il codice scritto da altri, è consigliabile usare la seguente convenzione sull iniziale dei nomi e sulle parole composte: Classi Interfacce Dati membro Oggetti Tipi primitivi Iniziale maiuscola Iniziale maiuscola Iniziale minuscola Iniziale minuscola Iniziale minuscola MyClass MyInterface aslot amethod() anobject anint

16 Nota sui Nomi delle Interfacce Anche se non esiste una convenzione esplicita, solitamente i nomi delle interfacce terminano con il post-fisso able Tale post-fissostaad indicare che l interfaccia, di fatto, definisce una proprietà

17 Costruttori Analogamente al C++, anche in Java esistono i costruttori Analogamente al C++, anche in Java i costruttori hanno lo stessonome della classe Per creare una nuova istanza di un oggetto bisogna obbligatoriamente invocare una new: obj = new MyClass() ;

18 Costruttori: Esempio public class MyClass { public MyClass() { // costruttore senza parametri public MyClass(Object anobject) { // costruttore con parametri

19 Distruttori In Java non esistono distruttori E compito del Garbage Collector distruggere gli oggetti non più referenziati E possibile forzare il Garbage Collector invocando il metodo finalize( ) della classe Object

20 Catene di eredità In Java tutte le classi derivano, in maniera diretta o indiretta, da una classe comune: Object

21 Catene di eredità: Esempio Object ---Number ---Double ---Integer ---Boolean ---Character

22 Eredità singola: Classi In Java l eredità è singola Ogni classepuò ereditare solamenteda un altra classe Per indicare che una classe eredita da un altra classe si usa la parola chiave extends

23 Eredità singola: Esempio public class Derived extends Base { // corpo della classe Derived La seguente istruzione è implicita e può essere omessa: public class MyClass extends Object { // corpo della classe MyClass

24 Eredità multipla: Interfacce Per le interfacce l eredità è multipla Un interfaccia può ereditare ilcomportamento di una o più interfacce Per indicare che un interfaccia eredita da un altra interfaccia si usala parola chiave extends

25 Eredità Multipla: Esempio public interface Derivable extends IBase1, IBase2 { // definizione dell interfaccia // Derivable

26 Nota sull Eredità Una classe può ereditare da una sola superclasse ma può implementare più interfacce cosìfacendo Java stain qualche modo rendendo possibile una forma di eredità multipla.

27 Eredità: Esempio public class Derived extends Base implements IBase1, IBase2 { // implementazione della classe

28 Eredità L eredità in Java è sempre pubblica Non è infatti possibile, come ad esempio in C++, stabilire metodi più sofisticati di eredità

29 L oggetto super Per accedere ai dati membro di una superclasse, si usa la parola chiave super public class Base { public Object obj ; public class Derived extends Base{ public Object obj ; public void mymethod( ) { super.obj = ;

30 Eredità: Costruttori Nella catena di ereditàvengono ereditati anche i costruttori. Nel casoin cui il costruttore venga ridefinito nella classederivata, è comunque possibile accedere al costruttore della classe madre usando il costruttosuper(...) con gli eventuali parametri.

31 Eredità: Costruttori La prima istruzione che viene eseguita implicitamente quando viene invocato un costruttore è l istruzione super( ), ovvero il costruttore senza parametri della classe base. Il richiamo esplicito di un costruttore della classe base con il costrutto super( ) (con o senza parametri) deve essere fatto come prima istruzione del costruttore.

32 Eredità: Esempio public class Base { public Base() { public Base(int var) { public class Derived extends Base { public Derived() { super() ;

33 Eredità: Esempio public class Base { public Base() { public Base(int var) { public class Derived extends Base { public Derived(int var) { super(var) ;

34 Modificatori di Accesso I dati membro possono avere uno di quattro livelli di accesso: private protected public default Va indicato nella dichiarazione della variabile o del metodo Se non è esplicitamente indicato si intende il livello di default

35 Modificatori di Accesso: Esempio public class Base { private String privateslot ; protected void protectedmethod() {... public class Derived extends Base { public void publicmethod() { this.privateslot ; // NO!!! this.protectedmethod() ; // YES!!!

36 Modificatori di Accesso: Esempio public class AClass { private String privateslot ; public void publicmethod() { public class AnotherClass { public void publicmethod() { AClass obj = new AClass() ; obj.privateslot ; // NO!!! obj.publicmethod() ; // YES!!!

37 Eredità e Modificatori di Accesso In Java l ereditarietà è sempre pubblica Nell overriding dei metodi è comunque possibile modificare il modificatore di accesso La modifica è possibile solamente nella direzione di un aumento della visibilità. Non è invece consentito l occultamento del dato

38 Overriding: Esempio public class Base { protected protectedmethod() { public publicmethod() { public class Derived { public protectedmethod(){ // YES!!! private publicmethod(){ // NO!!!

39 Polimorfismo parametric universal inclusion polymorphism overloading ad-hoc coercion

40 Polimorfismo Universale: per Inclusione Gli oggetti possono manifestare un comportamento polimorfo risalendo la catena di eredità Per creare il metodo più generico possibile basterà passare come parametro un oggetto di classeobject Se si vuole che un metodo restituisca un oggettoil più generico possibile basterà restituire un oggetto di classe Object

41 Polimorfismo per Inclusione: Esempio public class Stack { public Object[] buffer ; public void push(object obj) { public Object top() {

42 Polimorfismo Universale: per Genericità Nella versione beta sono stati introdotti i Generics Dedicheremo un intera lezione all argomento (20 Maggio 2004)

43 Polimorfismo Ad-Hoc: Overloading Un metodo può essere sovraccaricato per manifestare diversi comportamenti I metodi di cui si fa l overlaoding devono essere distinguibili per numero e/o tipi di parametri passati in ingresso NON è possibile che due metodi differiscano solamente per il tipo restituito

44 Overloading: Esempio public class MyClass { public void mymethod() { public void mymethod(obj obj) { public void mymethod(obj obj, int v) {

45 Polimorfismo Ad-Hoc: Overloading Anche i costruttori possono essere sovraccaricati Per richiamare un costruttore dentro un altro costruttore si usa il costrutto this( ) con i relativi parametri Questomeccanismo può ovviare alla mancanza dei parametri di default

46 Overloading: Esempio public class MyClass { public void MyClass(int a, int b) { public void MyClass () { this(0,0) ;

47 Polimorfismo Ad-Hoc: Overloading In Java non è possibile fare l overloading degli operatori Faeccezione la ridefinizione dell operatore + nella classe String che permette la concatenazione di stringhe di caratteri

48 Polimorfismo Ad-Hoc: Coercion Sui tipi primitivi si ha la coercion implicita : double y ; int x ; System.out.println(x+y) ; >> 42.0

49 Polimorfismo Ad-Hoc: Coercion Per quanto riguarda gli oggetti si ha: up-casting implicito down-casting esplicito

50 Coercion: Esempio Upcasting implicito: public class MyClass { public void push(object o) { [ ] [ ] Integer aninteger = new Integer(10); MyClass mc = new MyClass() ; mc.push(aninteger) ;

51 Coercion: Esempio Downcasting esplicito: public class MyClass { public void push(integer i) { [ ] [ ] Object anobject = new Object(); Integer aninteger = new Integer(10); anobject = aninteger ; MyClass mc = new MyClass() ; mc.push((integer) anobject) ;

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 [email protected] http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento

Dettagli

18 - Classi parzialmente definite: Classi Astratte e Interfacce

18 - Classi parzialmente definite: Classi Astratte e Interfacce 18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

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

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

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

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

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

Dettagli

Proprietà delle Classi e degli Oggetti in Java

Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di

Dettagli

TIPI PRIMITIVI: LIMITI

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

Dettagli

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

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo

Esempi al calcolatore su: 1) Costruttori ed ereditarietà 2) Subtyping e polimorfismo Esempi al calcolatore su: 1) 2) Subtyping e polimorfismo 1 Esempio 1: 2 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il

Dettagli

Uso di metodi statici. Walter Didimo

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

Dettagli

Polimorfismo parametrico vs polimorfismo per inclusione

Polimorfismo parametrico vs polimorfismo per inclusione Polimorfismo parametrico vs polimorfismo per inclusione Esercizio Definire il tipo di dato Stack con operazioni Push( element ) Pop() Non forzare una specifica implementazione Non forzare un tipo specifico

Dettagli

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà L ereditarietà è il meccanismo attraverso cui viene implementata la relazione di specializzazione (is-a). L ereditarietà è il meccanismo attraverso cui una classe (derivata) eredita da un altra classe

Dettagli

Esempio su strutture dati dinamiche: ArrayList

Esempio su strutture dati dinamiche: ArrayList Esempio su strutture dati dinamiche: ArrayList 1 ArrayList! Abbiamo detto che gli array non possono cambiare la propria dimensione: il numero di elementi contenuti viene stabilito al momento della creazione

Dettagli

Gerarchia di classi Java 1

Gerarchia di classi Java 1 Costruttori della sottoclasse Gerarchia di classi Java Parte 2 Corso di laurea in Comunicazione digitale I costruttori non vengono ereditati, non essendo membri di classe Vengono definiti esplicitamente

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione VIII Tatiana Zolo [email protected] 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono

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

Java Native Interface Appunti

Java Native Interface Appunti Java Native Interface Appunti Riccardo Rizzo 1/8 Introduzione L'uso delle Java Native Interface e' giustificato tutte quelle volte che una applicazione non puo' essere scritta interamente in Java. Per

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Paradigma O.O. Oggetti e Classi Ereditarietà Paradigma Object-Oriented Il paradigma O.O. si ispira all ambiente che ci circonda,

Dettagli

Synchronized (ancora)

Synchronized (ancora) Synchronized (ancora) Riscriviamo l esempio di prima. Usiamo una struttura modulare, con una classe Notificatore che ha opportuni metodi. La classe ha due campi privati, la lista buftext e un suo thread.

Dettagli

Le basi del linguaggio Java

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

Dettagli

Ereditarietà e Polimorfismo

Ereditarietà e Polimorfismo Ereditarietà e Polimorfismo Riusare il software A volte si incontrano classi con funzionalità simili In quanto sottendono concetti semanticamente vicini È possibile creare classi disgiunte replicando le

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

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

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

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

Fondamenti di Informatica I

Fondamenti di Informatica I Sapienza Università di Roma, Facoltà di Ingegneria Corso di Fondamenti di Informatica I Canale 1 (A-K) Anno Accademico 2009-2010 Corso di Laurea in Ingegneria Informatica Docente: Camil Demetrescu Esercitatore:

Dettagli

Programmazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012

Programmazione a oggetti e JAVA. Prof. B.Buttarazzi A.A. 2011/2012 Programmazione a oggetti e JAVA Prof. B.Buttarazzi A.A. 2011/2012 Sommario Variabili statiche Ereditarietà multipla Le interfacce Binding Esercizi Esercizio ContoCorrente Creare una classe ContoCorrente

Dettagli

In questa lezione. Polimorfismo

In questa lezione. Polimorfismo In questa lezione Polimorfismo (in Java) Tipo statico e tipo dinamico dei reference Binding dinamico (late binding) Casting (Upcasting e Downcasting) Operatore instanceof Polimorfismo con Object Polimorfismo

Dettagli

La programmazione ad oggetti: chiamate di metodi. Overloading. This

La programmazione ad oggetti: chiamate di metodi. Overloading. This ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMA SVOLTO A.S. 2015/2016 Classe IV C Informatica Proff. Fabio Ciao / Simone Calugi Libro di testo: Cloud B P.

Dettagli

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate

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

Esempio: Interfacce. Gioco Interfacce

Esempio: Interfacce. Gioco Interfacce Esempio: Interfacce 1 Descrizione Si supponga di avere delle carte da gioco. Ogni carta rappresenta un Personaggio che può essere di tipo o Umano o Mostro. Un Personaggio di tipo Umano ha una forza fisica

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Sommario Variabili statiche Ereditarietà multipla Le interfacce Binding Esercizi Variabili statiche Se una variabile di una classe ha il

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

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Analisi Object Oriented ed Elementi di Programmazione OO Origini Le metodologie ad oggi nascono negli anni 70 ma si affermano solo nelgi anni 80 grazie alla nascita dei linguaggi

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Costruttori di copia, funzioni di accesso e variabili static aa 2008/2009 Claudio De Stefano Claudio De Stefano - Corso di Programmazione ad Oggetti - aa 2008/2009 1

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

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

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

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

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

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

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

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate

Dettagli

Laboratorio di programmazione

Laboratorio di programmazione Laboratorio di programmazione Lezione II Tatiana Zolo [email protected] 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento

Dettagli

Prima lezione di laboratorio. I mattoni di base di un programma Java. Riassunto. Comandi Unix. Oggi. Blog & Group.

Prima lezione di laboratorio. I mattoni di base di un programma Java. Riassunto. Comandi Unix. Oggi. Blog & Group. I mattoni di base di un programma Java Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ [email protected] Programmazione, lezione 2 8 ottobre

Dettagli

Lezione 13 Classi interne

Lezione 13 Classi interne Lezione 13 Classi interne Questa lezione chiude la parte del corso più squisitamente dedicata alla programmazione orientata agli oggetti con Java. Sarà esaminato un nuovo tipo di classi, finora taciuto,

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

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

Riassunto. La programmazione OO. Oggi. Esempio

Riassunto. La programmazione OO. Oggi. Esempio Riassunto La programmazione OO Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ [email protected] Programmazione, lezione 17 29 novembre

Dettagli

18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

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

Dettagli

LABORATORIO DI INFORMATICA: PROGRAMMAZIONE

LABORATORIO DI INFORMATICA: PROGRAMMAZIONE LABORATORIO DI INFORMATICA: PROGRAMMAZIONE DOMANDE PER LA SECONDA PROVA IN LABORATORIO Problema 1. È il software (ovvero le istruzioni che ordinano al calcolatore di eseguire azioni e di prendere decisioni)

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

Dettagli

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali 1 Ereditarietà, polimorfismo e altri sporchi trucchi Facciamo un esempio che ci permette di comprendere come vengono utilizzate

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