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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

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

2 Sommario Paradigma O.O. Oggetti e Classi Ereditarietà

3 Paradigma Object-Oriented Il paradigma O.O. si ispira all ambiente che ci circonda, costituito da oggetti, identificati da: una componente statica, che ne descrive lo stato; una componente dinamica, che ne descrive il comportamento. Tutti gli oggetti che hanno le stesse caratteristiche appartengono ad una stessa classe (insieme). La classe è l entità astratta che rappresenta le caratteristiche (attributi) e i comportamenti (metodi) comuni che avranno gli oggetti generati a partire da essa. Si dice che un oggetto è una istanza (instance) di una classe (cioè un esemplare o caso particolare di una classe) per indicare che questo occupa memoria, a differenza della classe di appartenenza che ne definisce solo il tipo come sono organizzati i dati nella memoria. 3

4 Paradigma Object-Oriented Esempio (classe Autovettura) 4

5 Paradigma Object-Oriented Esempio (classe Autovettura) Con la classe Autovettura è possibile creare (istanziare) oggetti distinti: le autovetture concrete. Gli oggetti a differenza della classe ( modello ) avranno gli attributi inizializzati. Autovettura targa marcia colore giri_motore Notazione UML definizione di Classe accendiauto() spegniauto() cambiamarcia(int m) acceleraauto(int a) istance_of istance_of istance_of targa: CE 123 SA marcia: 0 colore: verde girimotore: 0 targa: AB 434 DE marcia: 4 colore: blu girimotore: 5000 targa: XY 823 SF marcia: 0 colore: rosso girimotore: 0 5

6 targa marcia colore giri_motore Autovettura Notazione UML definizione di Classe accendiauto() spegniauto() cambiamarcia(int m) acceleraauto(int a) istance_of istance_of istance_of targa: CE 123 SA marcia: 0 colore: verde girimotore: 0 targa: AB 434 DE marcia: 4 colore: blu girimotore: 5000 targa: XY 823 SF marcia: 0 colore: rosso girimotore: 0 6

7 Paradigma Object-Oriented Esempio (classe Persona) Classe per le persone : nome, cognome e città di residenza. 7

8 Paradigma Object-Oriented Con la classe Persona è possibile creare (istanziare) oggetti: le persone concrete. A differenza del modello avranno gli attributi inizializzati La relazione che esiste tra gli oggetti (p1, p2 e p3) e la classe che li ha generati è detta instance_of (istanza_di). 8

9 9

10 Paradigma Object-Oriented Consuetudini: i nomi delle classi sono al singolare con l iniziale maiuscola; i nomi dei metodi iniziano sempre con la lettera minuscola: se sono composti le successive parole hanno l iniziale maiuscola; i nomi degli attributi sono sempre minuscoli: se composti da più parole, queste sono separate con il carattere sottolineatura ( _ ). Per le rappresentazioni grafiche si utilizza l UML (Unified Modeling Language). <Classe> <attributi> Componente Statica Componente Dinamica <metodi> 10

11 Paradigma Object-Oriented Esempio (classe Persona) Classe per le persone fisiche: nome, cognome e città di residenza. Persona + String nome + String cognome - String città i nomi delle classi sono al singolare con l iniziale Maiuscola i nomi degli attributi sono sempre minuscoli: se composti da più parole, queste sono separate con il carattere sottolineatura ( _ ).; + setcitta( String c ) i nomi dei metodi iniziano sempre con la lettera minuscola: se sono composti le successive parole hanno l iniziale maiuscola; La regola di visibilità (scope) specifica se e come si può avere accesso agli elementi della classe: il carattere + specifica uno scope public: elemento visibile a tutti il carattere - lo scope private: elemento invisibile. 11

12 Principi Object Oriented Incapsulamento. E la capacità di una classe di incapsulare insieme dati e operazioni sui dati Information Hiding Nascondere attributi e operazioni che rappresentano l implementazione. Mostrare solo le operazioni che devono essere visibili dagli altri oggetti. Ereditarietà E la possibilità di derivare una classe da una classe esistente ereditando da quest ultima attributi e operazioni. La classe derivata è detta sottoclasse, la classe esistente superclasse. La sottoclasse può definire nuovi attributi e operazioni e ridefinire attributi e operazioni della superclasse sovrascrivendoli (Overriding) Polimorfismo Dal greco pluralità di forme : è la capacità di una entità di assumere forme diverse a seconda del contesto. In Java ci sono 2itipi di polimorfismo : overloading (eseguire,per una operazione, implementazioni diverse a seconda del contesto) e overriding 16/01/

13 Programmazione O.O. in Java Nell approccio orientato agli oggetti invece di modellare il problema adattandolo alla logica del calcolatore (specificando le singole azioni da compiere) si definiscono le classi necessarie a risolvere il problema (o si usano classi già disponibili) nel main si creano oggetti a partire dalle classi definite si utilizzano i metodi degli oggetti (gli oggetti possono interagire tra loro) per produrre risultati.

14 Esercizio Realizzare la classe Frazione secondo le informazioni presenti nel diagramma delle Classi UML in figura e scrivere un metodo testfrazione che verifichi il codice scritto. Un oggetto di tipo Frazione contiene una coppia di informazioni elementari: num e denom di tipo int. Deve essere possibile creare un nuovo oggetto Frazione a partire dai campi num e denom. Deve essere possibile sommare alla frazione di riferimento un altra frazione tramite il metodo somma. In particolare si tenga conto che il metodo somma consente di sommare 2 frazioni: la frazione oggetto di riferimento (es. f1) e un altra frazione (es. f2) e assegnare il risultato alla frazione somma (es. f3). va definito un metodo String tostring() che restituisce una descrizione testuale adeguata della frazione. Frazione - int num - int denom + Frazione(int num, int denom) + Frazione somma(frazione frazione) + int getnumeratore() + int getdenominatore() + String tostring ()

15 Esercizio Realizzare la classe Frazione secondo le informazioni presenti nel diagramma delle Classi UML in figura e scrivere un metodo testfrazione che verifichi il codice scritto. Costruttore Deve essere possibile creare un nuovo oggetto Frazione a partire dai campi num e denom - int num - int denom Frazione + Frazione(int num, int denom) + Frazione somma(frazione frazione) + int getnumeratore() + int getdenominatore() + String tostring ()

16 Esercizio Realizzare la classe Frazione secondo le informazioni presenti nel diagramma delle Classi UML in figura e scrivere un metodo testfrazione che verifichi il codice scritto. Metodo somma Deve essere possibile sommare alla frazione di riferimento un altra frazione tramite il metodo somma. In particolare si tenga conto che il metodo somma consente di sommare 2 frazioni: la frazione oggetto di riferimento (es. f1) e un altra frazione (es. f2) e assegnare il risultato alla frazione somma (es. f3). Frazione f3; Frazione f3=f1.somma(f2); Frazione - int num - int denom + Frazione(int num, int denom) + Frazione somma(frazione frazione) + int getnumeratore() + int getdenominatore() + String tostring ()

17 Esercizio Realizzare la classe Frazione secondo le informazioni presenti nel diagramma delle Classi UML in figura e scrivere un metodo testfrazione che verifichi il codice scritto. Metodo somma Deve essere possibile sommare alla frazione di riferimento un altra frazione tramite il metodo somma. In particolare si tenga conto che il metodo somma consente di sommare 2 frazioni: la frazione oggetto di riferimento (es. f1) e un altra frazione (es. f2) e assegnare il risultato alla frazione somma (es. f3). Frazione f3=new Frazione (0,0); f3=f1.somma(f2); Frazione - int num - int denom + Frazione(int num, int denom) + Frazione somma(frazione frazione) + int getnumeratore() + int getdenominatore() + String tostring ()

18 Esercizio Realizzare la classe Frazione secondo le informazioni presenti nel diagramma delle Classi UML in figura e scrivere un metodo testfrazione che verifichi il codice scritto. I metiodi get implementano l incapsulamento relativo la classe Frazione. - int num Frazione Possiamo notare che le variabili num e denom essendo state dichiarate private, non saranno accessibili da classi esterne. L accesso alle variabili num e denom viene effettuato dai metodi, getnumeratore e getdenominatore che operano in lettura. Va definito un metodo String tostring() che restituisce una descrizione testuale adeguata della frazione. - int denom + Frazione(int num, int denom) + Frazione somma(frazione frazione) + int getnumeratore() + int getdenominatore() + String tostring ()

19 public class Frazione { private int numeratore; private int denominatore; public Frazione(int numeratore, int denominatore){ this.numeratore=numeratore; this.denominatore=denominatore; public int getnumeratore(){ return this.numeratore; public int getdenominatore(){ return this.denominatore;

20 public Frazione somma(frazione frazione){ int den=this.denominatore*frazione.denominatore; int num=((frazione.denominatore)*this.numeratore) +(frazione.numeratore*this.denominatore); Frazione f=new Frazione(num,den); return f; public String tostring(){ return (this.numeratore+"/"+this.denominatore); f1 f2 f3 esempio

21 public class testfrazione { /** args */ public static void main(string[] args) { // TODO Auto-generated method stub Frazione f1=new Frazione(1,3); Frazione f2=new Frazione(2,5); Frazione f3=f1.somma(f2); System.out.println(f1.toString()); System.out.println(f2.toString()); System.out.println(f3.toString());

22 public class testfrazione { /** args */ public static void main(string[] args) { // TODO Auto-generated method stub Frazione f1=new Frazione(1,3); Frazione f2=new Frazione(5,5); Frazione f3=new Frazione (0,0); f3=f1.somma(f2); System.out.println(f1.toString()); System.out.println(f2.toString()); System.out.println(f3.toString()); in alternativa

23 Esercizio Realizzare la classe MioArray secondo le informazioni presenti nel diagramma delle Classi UML in figura e scrivere un metodo testarrayche verifichi il codice scritto. MioArray - int num[] - int length + MioArray(int num []) + int somma() + int stampa()

24 Esercizio MioArray public class MioArray{ int num[]; int length; variabili di istanza MioArray(int a[]){ num=a; length=num.length; public int somma(){ int res=0; for(int k=0;k<num.length;k++){ res=res+num[k]; return res; public void stampa(){ if(num.length==0) return; System.out.print("l'array = "+num[0]); for(int i=1; i<num.length; i++){ System.out.print(", "+num[i]); System.out.println(); costruttore metodo metodo

25 Esercizio MioArray public int prodotto(){ int res=1; for(int k=0;k<num.length;k++){ res=res*num[k]; return res; public int massimo(){ int max=num[0]; for(int k=0;k<num.length;k++){ if(num[k]>max) max=num[k]; return max; metodo metodo

26 class EsempioArray2{ public static void main(string args[]){ int v[]={2,9,54,12,45,78; MioArray a=new MioArray(v); int somma=a.somma(); double media=somma/a.length; System.out.println("L'array utilizzato:"); //stampa gli elementi dell'array a.stampa(); System.out.println("media ="+media); System.out.println("media ="+a.massimo()); Esercizio MyArray

27 Ereditarietà L'ereditarietà è un meccanismo fondamentale per il riutilizzo del codice nella programmazione a oggetti. Infatti tramite questo meccanismo è possibile estendere e potenziare classi già esistenti. In Java si usa l ereditarietà quando occorre definire una classe i cui oggetti hanno una struttura più ricca di quella di una classe già definita, oppure che realizzano delle funzionalità aggiuntive. La nuova classe più "specializzata" che eredita i campi e i metodi dalla classe preesistente viene detta Sottoclasse. La classe più "generale" (quella preesistente) si dice Superclasse. Si dice che la sottoclasse estende la superclasse.

28 Ereditarietà

29 Nuovo tipo di modificatore di visibilità!

30 esempio di oveloading

31 Overloading L'overloading rappresenta una importante caratteristica di Java che consente ad una classe di avere più metodi con lo stesso nome ma con parametri differenti ovvero con una firma diversa. Overload significa «sovraccaricare» ovvero definire più versioni di un metodo, utilizzando lo stesso nome ma una firma diversa. Per firma di un metodo si intende il numero e/o il tipo di argomenti nella dichiarazione. Infatti sulla base degli argomenti passati in fase di chiamata verrà riconosciuta la firma e richiamato il metodo corretto.

32 La qualifica protected: rende accessibile un campo a tutte le sottoclassi, presenti e future costituisce perciò un permesso di accesso valido per ogni possibile sottoclasse che possa essere definita.

33 L espressione super(...) invoca il costruttore della classe base, quindi deve avere i parametri attuali corrispondenti in numero e tipo a quelli formali. L espressione super.print() invoca il metodo print della classe base.

34 La parola chiave super nella forma super(...), invoca un costruttore della classe base nella forma super.val, consente di accedere al campo val della classe base (sempre che esso non sia private) nella forma super.metodo(), consente di invocare il metodo metodo() della classe base (sempre che esso non sia private)

35

36 Cosa abbiamo imparato? Il concetto di Ereditarietà; La differenza tra superclasse e sottoclasse; La qualifica protected; A cosa serve la parola chiave super. 16/01/

37 Questionario 1) Quali sono le proprietà fondamentali della programmazione OO? Ereditarietà, incapsulamento, polimorfismo, overloading e overriding; Incapsulamento, overloading e overriding; Ereditarietà, incapsulamento e polimorfismo; Ereditarietà, polimorfismo, overloading e overriding. 2) Quali delle seguenti non è una fase fondamentale della programmazione Object- Oriented? Utilizzare l incapsulamento dei metodi, che attraverso l overloading permette ad una classe di avere più metodi con lo stesso nome e con parametri differenti; Definire le classi; Utilizzare il polimorfismo dei metodi, che attraverso l overloading permette ad una classe di avere più metodi con lo stesso nome ma con parametri differenti; Implementare l information hiding. 16/01/

38 3) Che cos è l ereditarietà? E la tecnica che permette l accesso diretto a tutti gli attributi privati, rendendo la classe indipendente e riutilizzabile E la tecnica che permette ad una classe di incorporare nella sua dichiarazione un altra classe; E la tecnica che permette ad un interfaccia di accedere ad una classe generica di azioni; E la tecnica che permette di avere più metodi e costruttori all interno di una stessa classe con le stesse variabili d istanza. 4) Una Superclasse ha accesso ai membri di una sottoclasse? E una sottoclasse ha accesso ai membri di una Superclasse? Una superclasse ha accesso ai membri di una sottoclasse, ed anche una sottoclasse può accedere a tutti i membri non privati della sua superclasse; Una superclasse ha accesso ai membri di una sottoclasse, ma una sottoclasse non può accedere ai membri della sua superclasse; Una superclasse non ha accesso ai membri di una sottoclasse, ma una sottoclasse può accedere a tutti i membri non privati della sua superclasse; Una superclasse non ha accesso ai membri di una sottoclasse, ma una sottoclasse può accedere a tutti i membri della sua superclasse. 16/01/

39 5) Quando si crea una sottoclasse, quale o quali parole chiave vengono utilizzate per includere una superclasse? Estend; Super e Extends; Super; Extends. 6)Analizzare la seguente parte di programma: class ScatolaPeso extends Scatola{ private int peso; public ScatolaPeso(int a,int l,int p,int pe){ super (a,l,p); peso=pe; Per quale funzione viene utilizzato, in questa caso, la parola chiave super? Per invocare il costruttore della classe base; Per invocare un metodo della classe base; Per accedere ad un campo della classe base; Per accedere ai membri della superclasse. 16/01/

40 7) Per quale delle seguenti funzioni non può essere utilizzata la parola chiave super? Per accedere ai membri della superclasse; Per incorporare nella dichiarazione di una classe quella di un altra; Per invocare un metodo della classe base; Per invocare il costruttore della classe base. 8) Quale dei seguenti non è un modificatore di accesso? Private ; Public; Default; Protect. 16/01/

41 Esercizio Classe Punto su piano cartesiano Implementare una classe Java che rappresenti un punto nel piano cartesiano. La classe Punto è caratterizzata dalle sue coordinate (due valori di tipo double) e fornisce i seguenti metodi: un costruttore di default (nessun parametro): inizializza le coordinate con i valori (0,0) un costruttore che prenda come parametri due valori double e li imposti come coordinate del punto void sposta(double x, double y): imposta i valori dei parametri x e y come nuove coordinate del punto boolean coincide(punto p): verifica se il punto p coincide con il punto istanza su cui viene invocato il metodo (due punti sono coincidenti quando hanno le stesse coordinate) boolean simmetricox(punto p): verifica se il punto passato come parametro èsimmetrico al punto corrente rispetto all'asse x (ovvero se le coordinate x dei due punti sono uguali e la coordinata y del punto passato come parametro è l'opposto della coordinata y dell'oggetto istanza di invocazione). boolean simmetricoy(punto p): verifica se il punto passato come parametro è simmetrico al punto corrente rispetto all'asse y (ovvero se le coordinate y dei due punti sono uguali e la coordinata x del punto passato come parametro è l'opposto della coordinata x dell'oggetto istanza di invocazione). tostring: restituisce una stringa che descrive il punto nel formato (x,y) in cui x e y sono le coordinate correnti del punto. La classe deve essere opportunamente incapsulata (cioè deve fornire anche i metodi get* ed set* per le coordinate del punto). Verificare la correttezza del codice compilando ed eseguendo una classe di prova. Si produca anche lo schema UML

42 Esercizio Classe Punto su piano cartesiano Implementare una classe Java che rappresenti un Libro. La classe Libro è caratterizzata dal titolo (stringa) e da un array di stringhe contenenti i nomi degli autori e fornisce i seguenti metodi: aggiungiautore(s) che presa in ingresso un stringa s la inserisce nell'array contenente i nomi degli autori, in modo che il nome dell'i-esimo autore inserito occupi la posizione corrispondente dell'array. numeroautori() che restituisce il numero degli autori del libro. getautore(i) che dato un intero i, restituisce l'autore in posizione i nell'array degli autori. tostring() che restituisce una stringa rappresentante il libro, scrivendo il titolo sulla prima riga e l'elenco degli autori separati da una virgola sulla seconda. La classe deve essere opportunamente incapsulata (cioè deve fornire anche i metodi get* ed set* ). Verificare la correttezza del codice compilando ed eseguendo una classe di prova. Si produca anche lo schema UML

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

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 Esercizi svolti Esercizi proposti Paradigma OO Nella programmazione tradizionale,

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 Programmazione O.O. Oggetti e Classi Metodi Parametri Variabili di istanza Costruttori Variabili locali Esercizi Implica: Programmazione

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

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

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

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

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

Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona di Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona su Sommario di su di di di su Astrazione sugli oggetti di su Il concetto di classe Classe: realizza l astrazione

Dettagli

Catia Trubiani. Laboratorio di Ingegneria del Software a.a

Catia Trubiani. Laboratorio di Ingegneria del Software a.a Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2013-2014 Catia Trubiani Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM) - Università degli Studi

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

Programmazione orientata agli oggetti Ereditarietà

Programmazione orientata agli oggetti Ereditarietà Programmazione orientata agli oggetti Ereditarietà Fondamenti di Informatica L-B 1 Programmazione basata su oggetti Il modello visto finora costituisce un sottoinsieme del modello orientato agli oggetti

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

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

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

Programmazione Java Avanzata Programmazione Object- Oriented in Java

Programmazione Java Avanzata Programmazione Object- Oriented in Java Programmazione Java Avanzata Programmazione Object- Oriented in Java Ing. Gianluca Caminiti Testi di Riferimento (Java) Cay Horstmann Concetti di informatica e fondamenti di Java Apogeo, 2007 (Versione

Dettagli

RICHIAMI DI PROGRAMMAZIONE A OGGETTI. Corso di Informatica Medica

RICHIAMI DI PROGRAMMAZIONE A OGGETTI. Corso di Informatica Medica Università degli Studi di Trieste Corso di Laurea Magistrale in INGEGNERIA CLINICA RICHIAMI DI PROGRAMMAZIONE A OGGETTI Corso di Informatica Medica Docente Sara Renata Francesca MARCEGLIA Dipartimento

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

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

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

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 II Compitino (Vers. B)

Programmazione II Compitino (Vers. B) Programmazione II Compitino (Vers. B) 17 dicembre 2015 Cognome Jackson Nome Michael Matricola 696969 Anno di corso 1 Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi

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

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

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

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

Programmazione orientata agli oggetti Classi astratte e interfacce

Programmazione orientata agli oggetti Classi astratte e interfacce Programmazione orientata agli oggetti Classi astratte e interfacce Fondamenti di Informatica L-B 1 Classi astratte Java ci consente di definire classi in cui uno o più metodi non sono implementati, ma

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Ereditarietà E' un meccanismo per estendere le funzionalità di una classe con nuovi campi e nuovi metodi Chiamiamo superclasse:

Dettagli

Laboratorio di Programmazione 1 [Java]

Laboratorio di Programmazione 1 [Java] Laboratorio di Programmazione 1 [Java] Prova di esame - 26 Gennaio 2011 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Pizzeria. La classe Tavolo ha i seguenti attributi: nome (una

Dettagli

Esempio 2: Subtyping

Esempio 2: Subtyping Esempio 2: Subtyping 22 Subclassing e subtyping Fino ad ora abbiamo trattato l ereditarietà come strumento che consente il riuso flessibile di classi già esistenti mediante l aggiunta o la ridefinizione

Dettagli

Esempi in Java di program.ne O-O

Esempi in Java di program.ne O-O Esempi in Java di program.ne O-O Ereditarietà Polimorfismo statico e dinamico Esercitazione laboratorio Interfaccia Comparable e Comparator 1 Gerarchia di ereditarietà Persona IS_A Docente Studente Tecnico

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

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

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

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

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti Analisi e Progettazione OO Origini Le metodologie ad oggetti nascono negli anni 70 ma si affermano solo negli anni 80 grazie alla nascita dei linguaggi di programmazione ad oggetti

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

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

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

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

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

e il loro uso: esistente e cambiare quel che va cambiato specializzare (per ereditarietà) la classe Counter public class EsempioNuovo {

e il loro uso: esistente e cambiare quel che va cambiato specializzare (per ereditarietà) la classe Counter public class EsempioNuovo { APPROCCI PER IL RIUTILIZZO: ricopiare manualmente il codice della classe esistente e cambiare quel che va cambiato creare un oggetto composto che incapsuli il componente esistente... gli inoltri le operazioni

Dettagli

Obiettivi. Comprendere i vantaggi offerti dal meccanismo dell ereditarietà Attivare processi di astrazione e specializzazione.

Obiettivi. Comprendere i vantaggi offerti dal meccanismo dell ereditarietà Attivare processi di astrazione e specializzazione. Obiettivi Unità B2 Gli oggetti: concetti avanzati Comprendere i vantaggi offerti dal meccanismo dell ereditarietà Attivare processi di astrazione e specializzazione Ereditarietà L ereditarietà permette

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

Programmazione orientata agli oggetti. Ivan Lanese

Programmazione orientata agli oggetti. Ivan Lanese Programmazione orientata agli oggetti Ivan Lanese Argomenti Programmazione orientata agli oggetti Classi Oggetti Costruttori Scrivere grosse applicazioni La gran parte delle applicazioni sono GROSSE Windows

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

Programmazione con Java

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

Dettagli

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 08 Ereditarietà A. Miola Febbraio 2008 http://www.dia.uniroma3.it/~java/fondinf2/ Ereditarietà 1 Contenuti!Livelli di astrazione

Dettagli

Corso sul linguaggio Java

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

Dettagli

Fondamenti di Informatica T-1. Costruttori Ereditarietà

Fondamenti di Informatica T-1. Costruttori Ereditarietà Costruttori Ereditarietà 2 Costruttori Si occupano della creazione e dell'allocazione in memoria degli oggetti. public class Persona{ //Variabili di istanza private String nome; private String cognome;

Dettagli

Lezione 5 Namespace e JavaDoc

Lezione 5 Namespace e JavaDoc Lezione 5 Namespace e JavaDoc Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Il namespace di Java: i package

Dettagli

Object-Oriented Programming

Object-Oriented Programming Object-Oriented Programming Una metodologia di programmazione che consente di modellare la realtà in modo più naturale e vicino all uomo Concetti fondamentali Oggetto Incapsulazione Messaggio Classe Ereditarietà

Dettagli

IL CONCETTO DI CLASSE

IL CONCETTO DI CLASSE IL CONCETTO DI CLASSE Una CLASSE riunisce le proprietà di: componente software: può essere dotata di suoi propri dati / operazioni moduli: riunisce dati e relative operazioni, fornendo idonei meccanismi

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

POO in JAVA e Robot EV3

POO in JAVA e Robot EV3 POO in JAVA e Robot EV3 1. Introduzione Dal procedurale agli oggetti La programmazione procedurale Per tutta la classe terza, abbiamo lavorato con un paradigma di programmazione che si chiama procedurale

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

Obiettivi. Unità B1. Le basi della programmazione a oggetti OOP. Gli oggetti del mondo reale

Obiettivi. Unità B1. Le basi della programmazione a oggetti OOP. Gli oggetti del mondo reale Obiettivi Unità B1 Le basi della programmazione a oggetti Formalizzare oggetti del mondo reale in oggetti del dominio applicativo che possano essere utilizzati dall applicazione, individuando solo gli

Dettagli

16 - Ereditarietà, tipi e gerarchie

16 - Ereditarietà, tipi e gerarchie 16 - Ereditarietà, tipi e gerarchie 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

16 - Ereditarietà, tipi e gerarchie

16 - Ereditarietà, tipi e gerarchie 16 - Ereditarietà, tipi e gerarchie 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

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

Principi di Progettazione del Software a.a

Principi di Progettazione del Software a.a Principi di Progettazione del Software a.a. 2017-2018 Fondamenti di Java Ing. Obiettivi della lezione Introduzione alla programmazione Object Oriented Ereditarietà Polimorfismo Interfacce Eccezioni 2 1

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/ mizzaro@dimi.uniud.it Programmazione, lezione 17 29 novembre

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

Programmazione II Compitino (Vers. A)

Programmazione II Compitino (Vers. A) Programmazione II Compitino (Vers. A) 17 dicembre 2015 Cognome... Nome... Matricola... Anno di corso... Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi al corpo del

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

TIPI PRIMITIVI E CLASSI WRAPPER

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

Dettagli

Ereditarietà (ultima)

Ereditarietà (ultima) Ereditarietà (ultima) Classi astratte Un ibrido tra classi e interfacce Hanno alcuni metodi implementati normalmente, altri astratti Un metodo astratto non ha implementazione abstract class AccountTransaction...

Dettagli

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

OCA JAVA 8 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 8 SE PROGRAMMER

Dettagli

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1.

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1. OO in Java: classi astratte, interfacce, classi interne Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione,

Dettagli

Introduzione alla Programmazione in Java attraverso un esempio commentato

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

Dettagli

Lab metodi programmazione. Testi. Caratteristiche di Java. Paradigmi di programmazione. Linguaggio Java Progetto

Lab metodi programmazione. Testi. Caratteristiche di Java. Paradigmi di programmazione. Linguaggio Java Progetto Lab metodi programmazione Linguaggio Java Progetto Testi C.S. Horstmann Computing Concepts with Java Essentials 3rd Edition, Wiley Ed. italiana: Concetti di informatica e fondamenti di Java 2 Seconda edizione,

Dettagli

Metodi statici. Dichiarazione e chiamata di metodi statici

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

Dettagli

Laboratorio di Programmazione 1 [Java]

Laboratorio di Programmazione 1 [Java] Laboratorio di Programmazione 1 [Java] Prova di esame - 7 Settembre 2010 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Ristorante. La classe Tavolo ha i seguenti attributi: numero

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

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

Oggetti e classi. Cos è un oggetto

Oggetti e classi. Cos è un oggetto Oggetti e classi Cos è un oggetto Basta guardarsi intorno per scoprire che il mondo reale è costituito da oggetti: libri, biciclette, giocattoli, ma anche ragazzi, bambini, fiori, gatti, cani, fiumi, montagne,

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

L ereditarieta` Riuso del software: Ereditarieta`, Composizione, Polimorfismo e Binding Dinamico Ereditarietà Ereditarietà

L ereditarieta` Riuso del software: Ereditarieta`, Composizione, Polimorfismo e Binding Dinamico Ereditarietà Ereditarietà L ereditarieta` Programmazione in Rete e Laboratorio Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino C.so Svizzera, 185 I-10149 Torino Riuso del software: Ereditarieta`, Composizione,

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

Informatica 3. Informatica 3. LEZIONE 8: Fondamenti di programmazione orientata agli oggetti (2) Lezione 8 - Modulo 1

Informatica 3. Informatica 3. LEZIONE 8: Fondamenti di programmazione orientata agli oggetti (2) Lezione 8 - Modulo 1 Informatica 3 Informatica 3 LEZIONE 8: Fondamenti di programmazione orientata agli oggetti (2) Modulo 1: Ereditarietà Modulo 2: Polimorfismo e classi astratte Modulo 3: Visibilità delle proprietà di una

Dettagli

Programmazione orientata agli oggetti

Programmazione orientata agli oggetti Programmazione orientata agli oggetti La programmazione orientata agli oggetti (OOP, Object Oriented Programming) è un paradigma di programmazione che prevede di raggruppare in un unica entità (la classe)

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

Fondamenti di Informatica T-1. Classi e metodi astratti

Fondamenti di Informatica T-1. Classi e metodi astratti Classi e metodi astratti 2 Classi astratte L'ereditarietà è utile per rappresentare tassonomie e gerarchie di entità reali. Non sempre però tutti i livelli della gerarchia rappresentano entità concrete.

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

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

Fondamenti di Informatica T-1

Fondamenti di Informatica T-1 Fondamenti di Informatica T-1 Classi e metodi astratti Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2015/2016 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 15 Classa astratta: definizione

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

Programmazione orientata agli oggetti Subtyping e polimorfismo

Programmazione orientata agli oggetti Subtyping e polimorfismo Programmazione orientata agli oggetti Subtyping e polimorfismo Fondamenti di Informatica L-B 1 Subclassing e subtyping Fino ad ora abbiamo trattato l ereditarietà come strumento che consente il riuso flessibile

Dettagli

Fondamenti di Informatica T-1. Ereditarietà & Polimorfismo

Fondamenti di Informatica T-1. Ereditarietà & Polimorfismo Ereditarietà & Polimorfismo Ereditarietà Meccanismo per definire una nuova classe (classe derivata) come specializzazione di un altra (classe base) La classe base modella un concetto generico La classe

Dettagli

Informatica 3. LEZIONE 8: Fondamenti di programmazione orientata agli oggetti (2)

Informatica 3. LEZIONE 8: Fondamenti di programmazione orientata agli oggetti (2) Informatica 3 LEZIONE 8: Fondamenti di programmazione orientata agli oggetti (2) Modulo 1: Ereditarietà Modulo 2: Polimorfismo e classi astratte Modulo 3: Visibilità delle proprietà di una classe Modulo

Dettagli

RETI DI CALCOLATORI Linguaggio Java: Ereditarietà

RETI DI CALCOLATORI Linguaggio Java: Ereditarietà Università degli Studi di Modena e Reggio Emilia Facoltà di Ingegneria Reggio Emilia CORSO DI RETI DI CALCOLATORI Linguaggio Java: Ereditarietà Prof. Franco Zambonelli Lucidi realizzati in collaborazione

Dettagli

Le basi del linguaggio Java

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

Dettagli

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

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

Richiami su oggetti e OOP

Richiami su oggetti e OOP Richiami su oggetti e OOP Un oggetto (object) è una entità caratterizzata da una struttura dati alla quale si associa l insieme delle operazioni che è possibile compiere su di essa. Un oggetto può essere

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

Dispensa di Informatica III.1

Dispensa di Informatica III.1 PROGRAMMAZIONE AD OGGETTO (OOP) La dispensa di seguito proposta si pone come tutorial per poter porre le basi per la realizzazione di MODULI SOFTWARE che vengano realizzati con un paradigma di programmazione

Dettagli

Capitolo 6. Uso della gerarchia. c 2005 Pearson Education Italia Capitolo 6-1 / 125

Capitolo 6. Uso della gerarchia. c 2005 Pearson Education Italia Capitolo 6-1 / 125 Capitolo 6 Uso della gerarchia c 2005 Pearson Education Italia Capitolo 6-1 / 125 Sommario: Uso della gerarchia 1 Notazione UML per le classi 2 Introduzione alla gerarchia 3 Gerarchia e tipi La gerarchia

Dettagli