Fondamenti di informatica T-1 (A K) Esercitazione 6: Eclipse, Ereditarietà e Polimorfismo
|
|
- Marilena Martino
- 6 anni fa
- Visualizzazioni
Transcript
1 Fondamenti di informatica T-1 (A K) Esercitazione 6: Eclipse, Ereditarietà e Polimorfismo AA 2015/2016 Tutor: Vincenzo Lomonaco vincenzo.lomonaco@unibo.it
2 Esercitazione 6 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso I metodi: concetti di base Stringhe ed array Classi e oggetti, costruttori, metodi statici, visibilità Eclipse, ereditarietà e polimorfismo Collezioni Java Esercizi d esame
3 Eclipse Cos è? Un ambiente di sviluppo integrato (IDE) contenente: un editor di codice sorgente; un compilatore e un interprete; un tool di building automatico; Un debugger. Come scaricarlo ed installarlo? Scaricarlo gratuitamente dal sito (versione IDE for Java Developers): Estrarre l archivio Eseguire il.exe
4 Eclipse Avviate Eclipse tramite il file eclipse.exe che potete trovare (in laboratorio) all'indirizzo -> C:\Applicativi\Eclipse
5 Primo avvio, scelta workspace Workspace: cartella che contiene i progetti In Laboratorio la vostra home oppure un dispositivo di archiviazione esterno A casa cartella a scelta, Eclipse sceglie automaticamente la home dell'utente (C:\Users\nome utente\workspace)
6 Basics Il primo progetto: Creazione di un nuovo progetto File New Java Project Poi, nel progetto, aggiungere classi tramite: File New Class
7 Javac e java Con Eclipse non c'è bisogno di compilare ed eseguire il programma separatamente. Eclipse esegue javac e java in automatico alla pressione del tasto «play» L'output dell eseguibile verrà stampato in basso nella finestra
8 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 derivata modella un concetto più specifico La classe derivata (sottoclasse): Dispone di tutte le funzionalità (attributi e metodi) di quella base Classe base Può aggiungere funzionalità proprie Può ridefinirne il funzionamento di metodi esistenti (polimorfismo) Classi derivate
9 Ereditarietà Processo di astrazione Si introduce la superclasse che "astrae" il concetto comune condiviso dalle diverse sottoclassi Le sottoclassi vengono "spogliate" delle funzionalità comuni che migrano nella superclasse Ogni classe definisce un tipo: Un oggetto, istanza di una sottoclasse, è formalmente compatibile con il tipo della classe base Il contrario non è vero! Ad esempio Un impiegato è una persona ma una persona non è (necessariamente) un impiegato Un automobile è un veicolo ma un veicolo non è (necessariamente) un automobile
10 Esempio
11 Terminologia Parola chiave "extends" : Specifica da quale classe eredita. Nell'esempio, Studente eredita da Persona Parola chiave "super" : Consente di invocare un metodo, un costruttore o un attributo della classe base purché non privati Annotazione "@Override" : Permette di ridefinire un metodo della superclasse a condizione che abbia stesso nome, parametri e tipo di ritorno (magari stessa semantica)
12 Polimorfismo Il polimorfismo può essere definito (in maniera molto spicciola) come la capacità di Java di invocare il metodo della sottoclasse più specifica Esempio OK : Persona p = new Studente("Mario", ); System.out.print(p.toString()); Output (notare il polimorfismo) : Mi chiamo Mario, numero di matricola Esempio KO : Studente s = new Persona("Mario"); Esempio KO : Studente s = new Impiegato("Mario", 1400);
13 Esercizio «Bicicletta» Creare una classe «Bicicletta» che abbia i seguenti attributi: Velocità Marcia Cadenza di Pedalata Ed i seguenti metodi: Un costruttore che inizializzi tutti i parametri Un metodo per settare la cadenza Un metodo per incrementare la velocità Un metodo per decrementare la velocità Un metodo per cambiare marcia Un metodo che ritorna una descrizione dello stato della bicicletta
14 Soluzione «Bicicletta» 1/2 public class Bicycle { // the Bicycle class has three fields public int cadence; public int gear; public int speed; // the Bicycle class has one constructor public Bicycle(int startcadence, int startspeed, int startgear) { gear = startgear; cadence = startcadence; speed = startspeed; // the Bicycle class has four methods public void setcadence(int newvalue) { cadence = newvalue;
15 Soluzione «Bicicletta» 2/2 public void setgear(int newvalue) { gear = newvalue; public void applybrake(int decrement) { speed -= decrement; public void speedup(int increment) { speed += increment; public void printdescription(){ System.out.println("\nBike is " + "in gear " + this.gear + " with a cadence of " + this.cadence + " and travelling at a speed of " + this.speed + ". ");
16 Esercizio «MountainBike» Creare una sottoclasse «MountainBike» che estenda «Bicicletta» aggiungendo i seguenti attributi: Tipo di sospensioni Ed i seguenti metodi: Un costruttore che inizializzi tutti i parametri di bicicletta e il tipo di sospensioni Un metodo per ottenere il tipo di sospensioni Ed infine Ridefinisca il metodo per la stampa della descrizione dello stato della bicicletta (si comprenda il tipo di sospensioni)
17 Soluzione «MountainBike» 1/2 public class MountainBike extends Bicycle { private String suspension; public MountainBike( int startcadence, int startspeed, int startgear, String suspensiontype){ super(startcadence, startspeed, startgear); this.setsuspension(suspensiontype);
18 Soluzione «MountainBike» 2/2 public String getsuspension(){ return this.suspension; public void setsuspension(string suspensiontype) { this.suspension = suspensiontype; public void printdescription() { super.printdescription(); System.out.println("The " + "MountainBike has a" + getsuspension() + " suspension.");
19 Esercizio «RoadBike» Creare una sottoclasse «RoadBike» che estenda «Bicicletta» aggiungendo i seguenti attributi: Spessore dello pneumatico Ed i seguenti metodi: Un costruttore che inizializzi tutti i parametri di bicicletta e lo spessore dello pneumatico Un metodo per ottenere lo spessore dello pneumatico Ed infine Ridefinisca il metodo per la stampa della descrizione dello stato della bicicletta (si comprenda lo spessore dello pneumatico)
20 Soluzione «RoadBike» 1/2 public class RoadBike extends Bicycle{ // In millimeters (mm) private int tirewidth; public RoadBike(int startcadence, int startspeed, int startgear, int newtirewidth){ super(startcadence, startspeed, startgear); this.settirewidth(newtirewidth);
21 Soluzione «RoadBike» 2/2 public int gettirewidth(){ return this.tirewidth; public void settirewidth(int newtirewidth){ this.tirewidth = newtirewidth; public void printdescription(){ super.printdescription(); System.out.println("The RoadBike" + " has " + gettirewidth() + " MM tires.");
22 Esercizio «BiciclettaMain» Creare una classe «BiciclettaMain» che contenga il metodo main e testi l implementazione delle classi di biciclette. In particolare si chiede di porre in evidenza l effetto del polimorfismo. Suggerimento: Dichiarare tre variabili di tipo bicicletta ed istanziarle con i tre tipi di oggetti diversi: «bicicletta» «MountainBike» «RoadBike» In seguito eseguire su di essi lo stesso metodo di stampa della descrizione
23 Soluzione «BiciclettaMain» public class Main { public static void main(string[] args){ Bicycle bike01, bike02, bike03; bike01 = new Bicycle(20, 10, 1); bike02 = new MountainBike(20, 10, 5, "Dual"); bike03 = new RoadBike(40, 20, 8, 23); bike01.printdescription(); bike02.printdescription(); bike03.printdescription();
24 Classi Astratte Abbiamo detto che le classi rappresentano entità del mondo reale, ma non tutte le entità sono reali: Ad esempio: non esiste concretamente il generico animale ma esistono gli specifici animali! Una classe astratta si definisce in questi termini: public abstract class Animale { private String nome; protected String verso; public abstract String verso(); public abstract String si_muove(); public abstract String vive(); Il concetto così espresso è che: ogni animale "reale" può fare un verso, può muoversi, e può dire in che ambiente vive ma non si può, in generale, precisare come perché questo ovviamente dipende dallo specifico animale
25 Classi astratte, precisazione Una classe avente anche solo un metodo abstract è astratta, e deve essere dichiarata abstract essa stessa. Una classe astratta può però anche non avere metodi dichiarati abstract (ma resta comunque astratta, quindi è impossibile istanziarla) Una sottoclasse di una classe astratta è anch essa astratta, se non ridefinisce tutti i metodi che erano astratti nella classe base. La differenza sostanziale tra l ereditarietà pura tra classi e l ereditarietà con classi astratte è che: Una classe che eredita da un'altra classe aggiunge o modifica funzionalità della classe base (già "completa") Una classe che eredita da una classe astratta fornisce funzionalità al posto della classe base. Cioè la classe base dice cosa "promette" di fare, la classe concreta lo fa
26 Interfacce Una interfaccia è analoga ad una classe, ma, a differenza di questa, costituisce una pura specifica di comportamenti. Come tale : Si limita a dichiarare i metodi, senza implementarli (tutti i metodi di un interfaccia sono implicitamente abstract) Non può definire variabili (può definire costanti, cioè static final) Un interfaccia può essere pensata come un contratto tra ogni classe che la implementa ed il mondo esterno: l interfaccia vincola le classi che la implementano a supportare le funzioni in essa dichiarate senza vincolare in alcun modo l implementazione delle classi
27 Un interfaccia importante, Comparable Quest interfaccia : ci è utile per definire dei criteri di ordinamento tra un oggetto ed un altro. Contiene al suo interno un solo metodo da ridefinire Nella documentazione dell interfaccia trovate un ampia spiegazione su come dovrebbe essere implementato il suo unico metodo: ble.html public interface Comparable<T>{ int compareto(t o);
28 Interfacce vs Classi astratte Interfacce : Non può essere istanziata Non contiene alcuna implementazione (le classi derivate dovranno realizzare tutte le funzionalità) Non può contenere stato Non può contenere attributi e metodi (e proprietà ed eventi) statici (a parte eventuali costanti comuni) Classi Astratte : Non può essere istanziata Può essere implementata completamente, parzialmente o per niente Le classi derivate devono realizzare le funzionalità non implementate e possono fornire una realizzazione alternativa a quelle implementate. (polimorfismo) Può contenere stato (comune a tutte le sottoclassi) Può contenere attributi e metodi statici
29 Esercizio per casa «Libro» Scaricare la classe «Libro» dal sito del corso: Estendere la classe libro implementando l interfaccia «comparable» descritta in precedenza affinché il metodo comparableto ritorni 0 se e solo se sia il titolo che l anno sono uguale Ritorni -1 se il titolo è uguale ma la data del comparato è minore Ritorni 1 se il titolo è uguale ma la data del comparato è maggiore Ritorni il risultato della comparableto implementata nella classe String nel caso i cui i titoli siano diversi. Implementare la classe «BibliotecaMain» in cui vengano istanziati diversi libri e testati i metodi di comparazione.
30 Esercizio per casa «Personale» Realizzare la seguente tassonomia: Creare un'interfaccia Impiegato che abbia la signature dei metodi: public String getnome(); public String getindirizzo(); public String gettelefono(); public double getpaga(); Creare una classe astratta Impiegato che implementi l'interfaccia ridefinendo : Tutti i metodi sopraelencati all'infuori di getpaga() Inserendo gli attributi nome, indirizzo e telefono (3 stringhe) Creare tre classi concrete che estendano la classe astratta che: Specializzino il metodo astratto getpaga() della superclasse Aggiungano gli eventuali metodi e attributi come da diagramma
31 Esercizio per casa «Personale» Le tre classi concrete sono i tre tipi di impiegato che l'azienda può avere (di cui si memorizzano nome, indirizzo e numero di telefono): I lavoratori dipendenti percepiscono uno stipendio mensile. I lavoratori giornalieri percepiscono uno stipendio dato dal prodotto di una base di retribuzione giornaliera moltiplicata per il numero di giorni lavorativi. I lavoratori volontari non percepiscono retribuzione. Il programma (classe PersonaleMain) deve creare i dati di alcuni impiegati di vostra invenzione e calcolare (e stampare a video) la retribuzione dovuta ad ogni impiegato.
32 Tassonomia «Personale» Interfaccia Classe astratta Metodo astratto Classi concrete
33 Esercizio «Fotografia» Uno studio fotografico possiede una serie di macchine fotografiche diverse. Le macchine fotografiche (classe astratta) sono caratterizzate da una marca, un modello, una data di acquisto e il prezzo pagato, e si dividono in altre due classi astratte : digitali, caratterizzate dalla risoluzione, dalla sensibilità ISO e dalla possibilità di estendere la garanzia. Tutte le macchine digitali hanno una garanzia di due anni (estendibile ad un prezzo di 200euro). analogiche, con una garanzia di 4 anni. Tra le macchine digitali, ci sono le reflex (caratterizzate dal modello dello specchio) e le mirrorless (che possono o meno avere un mirino elettronico). Tra le macchine analogiche, le istantanee (caratterizzate dal modello di pellicola) e quelle a rullino (caratterizzate dalla sensibilità ASA).
34 Esercizio «Fotografia» Le classi devono fornire metodi per: controllare se la macchina in questione è ancora in garanzia in una certa data stampare, mediante il metodo tostring, le caratteristiche della macchina fotografica. Il centro fotografico possiede quattro macchine fotografiche: Una reflex Canon, modello 5DMark3, acquistata il 13/05/2012 per 2985, 22.3 megapixel con sensibilità ISO , con specchio a pentaprisma; Una macchina a rullino Holga 120N, acquistata il 22/07/1999 per 66, sensibilità ASA Una mirrorless Nikon 1 V1, acquistata il 01/9/2012 per 499, 10.1 megapixel, sensibilità ISO 3200, dotata di mirino elettronico; Una istantanea Polaroid Supercolor 600, acquistata il 10/12/1993 del valore di 94, modello pellicole Serie 600.
35 Interfaccia Tassonomia Classe astratta Prezzo protected Metodo astratto Variabili statiche Classi concrete
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
DettagliFondamenti 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.
DettagliEreditarietà 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
DettagliLa 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
DettagliFondamenti 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
DettagliFondamenti 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;
DettagliEsempi 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
DettagliFondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso
Fondamenti di informatica T-1 (A K) Esercitazione 2: Linguaggio Java, basi e controllo del flusso AA 2015/2016 Tutor: Vincenzo Lomonaco vincenzo.lomonaco@unibo.it Programma Introduzione al calcolatore
DettagliCorso 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
DettagliEreditarietà. 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
Dettagli18 - 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/
DettagliProgrammazione 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
DettagliA. 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),
DettagliRiassunto: 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,
DettagliCorso 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
DettagliEsempio 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
DettagliEsempi 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
DettagliEreditarietà 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
DettagliObiettivi. 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
DettagliProgrammazione 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
DettagliProgrammazione. 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
DettagliIntroduzione a Java. Jacopo Torrini. Dipartimento di Sistemi e Informatica Laboratorio di Tecnologie del Software
Introduzione a Java Jacopo Torrini Dipartimento di Sistemi e Informatica Laboratorio di Tecnologie del Software Introduzione Il linguaggio Java è un linguaggio di alto livello con le seguenti caratteristiche:
DettagliLezione 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,
DettagliRICHIAMI 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
DettagliProva d Esame Compito A
Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private static int counter=0; private int code; public
DettagliClassi 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
DettagliProgrammazione 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
DettagliObject-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à
DettagliCapitolo 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
DettagliIl Linguaggio Java. Le interfacce
Il Linguaggio Java Le interfacce Ordinamento dei conti PROBLEMA: si vogliono ordinare i libretti di risparmio (SavingsAccount) in base al loro tasso di interesse REQUISITO: La classe dovrebbe essere ordinabile,
DettagliEsercitazione 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
DettagliGerarchia 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
DettagliClassi 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
DettagliCatia 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
DettagliProgrammazione è gestione di eventi
FUNZIONI Ed Eventi Programmazione è gestione di eventi Evento 1 (tasto premuto) Evento 2 (mouse) Evento 3 (cambio frame) Oggetto Evento 4 (fine di un brano audio) Azioni per evento 1 1. Azione 1 2. Azione
DettagliL 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,
DettagliProgrammazione. 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
DettagliINTRODUZIONE 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
DettagliClassi 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
DettagliESERCIZIO 1 (STRINGHE)
ESERCIZIO 1 (STRINGHE) Fornire N stringhe di caratteri in input al programma. Per ogni stringa: si stampi a video la stringa si sostituiscano tutte le occorrenze di un carattere ( old_char ) con un altro
DettagliOO programming. Dott. Ing. M. Banci, PhD
OO programming Dott. Ing. M. Banci, PhD I concetti dell Object-Oriented Programming 1. Cos è un Oggetto? Concetti di data encapsulation + benefici della OOP. 1. Cos è una Classe? Una classe è un prototipo
DettagliProgrammazione 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:
DettagliPrincipi di Progettazione del Software. Principi di Progettazione del Software a.a
Principi di Progettazione del Software a.a. 2016-2017 Fondamenti di Java Ing. Principi di Progettazione del Software https://twitter.com/rvergallo 2 1 Obiettivi della lezione Introduzione alla programmazione
DettagliCorso 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
DettagliOCA 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
DettagliProgrammazione 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
DettagliCLASSI ASTRATTE CLASSI ASTRATTE
CLASSI ASTRATTE L ereditarietà porta riflettere sul rapporto fra progetto e struttura: una classe può limitarsi a definire solo l interfaccia..lasciando in bianco uno o più metodi......che verranno poi
DettagliClassi astratte. Nella gerarchia delle classi, potrebbe essere utile prevedere un supertipo generale per le classi che si usano. Ad esempio: Figura
Classi astratte Nella gerarchia delle classi, potrebbe essere utile prevedere un supertipo generale per le classi che si usano. Ad esempio: Figura Rettangolo getarea() Quadrato getarea() getarea() Cerchio
DettagliProprietà 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
DettagliCorso di Fondamenti di Informatica I
Corso di Fondamenti di Informatica I Generics in Java Fabio Patrizi, Silvia Bonomi Dipartimento di Ingegneria Informatica, Automatica e Gestionale Facoltà di Ingegneria dell Informazione, Informatica e
DettagliCLASSI ASTRATTE CLASSI ASTRATTE: ESEMPIO CLASSI ASTRATTE CLASSI ASTRATTE: PERCHÉ? L ereditarietà porta riflettere sul
CLASSI ASTRATTE L ereditarietà porta riflettere sul rapporto fra progetto e struttura: una classe può limitarsi a definire solo l interfaccia..lasciando in bianco uno o più metodi......che verranno poi
DettagliInformatica 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
DettagliIL 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
DettagliCLASSI ASTRATTE - ESERCIZIO
CLASSI ASTRATTE - ESERCIZIO Definire una tassonomia di forme geometriche non esiste la generica forma geometrica! esistono triangoli, quadrilateri, pentagoni,... Forme può ben essere una classe astratta
DettagliOggetto software. stati o proprietà (variabili) comportamenti o metodi (funzioni)
Le classi Oggetto software stati o proprietà (variabili) comportamenti o metodi (funzioni) Bicicletta cambia rapporto 24 kmh rallenta accelera 90 ped/min quinto rapporto istanze e membri di classe Nel
DettagliProgrammazione 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
DettagliDefinizione 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
DettagliProgrammazione a Oggetti. Ereditarieta
Programmazione a Oggetti Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare una gerarchia
DettagliInformatica 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
DettagliOggetti 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,
DettagliCLASSI ASTRATTE CLASSI ASTRATTE CLASSI ASTRATTE: PERCHÉ? CLASSI ASTRATTE: ESEMPIO. è una classe astratta
CLASSI ASTRATTE L ereditarietà porta riflettere sul rapporto fra progetto e struttura: una classe può limitarsi a definire solo l interfaccia..lasciando in bianco uno o più metodi......che verranno poi
DettagliLe 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
Dettaglipublic BankAccount() { balance = 0; } public BankAccount(double initialbalance) { balance = initialbalance; }
Il Linguaggio Java Le interfacce La classe BankAccount public class BankAccount { public BankAccount() { balance = 0; public BankAccount(double initialbalance) { balance = initialbalance; public void deposit(double
DettagliProgrammazione 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
DettagliFondamenti di Informatica T-1. Classi & vettori
Classi & vettori 2 Array Un vettore (array) è un insieme ordinato, di dimensione fissa, di oggetti dello stesso tipo. Esempio: array capace di contenere al più 10 numeri interi int[] arrayinteri = new
DettagliIntroduzione. Java. Esempio. Esempio
Java polimorfismo G. Prencipe prencipe@di.unipi.it Introduzione È un altro degli ingredienti fondamentali della OOP Permette di organizzare il codice e la leggibilità e di ottenere programmi estensibili
DettagliFondamenti di Informatica L-B Esercitazione n 5 Java: Interfaccia Comparable, Array
Fondamenti di Informatica L-B Esercitazione n 5 Java: Interfaccia Comparable, Array A.A. 2007/08 Tutor: Barbara Pettazzoni barbara.pettazzoni@studio.unibo.it Interfaccia Comparable L altra volta abbiamo
Dettagli16 - 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
DettagliEsercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)
Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici
DettagliProgrammazione 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:
DettagliFondamenti 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,
DettagliEsercitazione. Docente Ing. Mariateresa Celardo
Esercitazione Docente Ing. Mariateresa Celardo mariateresa.celardo@uniroma2.it Scrivere la classe Motorino che ha i seguenti attributi colore: una stringa indicante il colore del motorino, velocità: un
DettagliEsercitazione n 1. Obiettivi
Esercitazione n 1 Obiettivi Introduzione all utilizzo di Java Development Kit (JDK) versione 1.3 Sviluppare programmi Java tramite linea di comando Es: javac, java, jdb, javadoc Primo esempio di programma
DettagliEsonero 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
DettagliEsempio Principio di sostituibilità
Ereditarietà E uno dei concetti chiave delle tecniche orientate agli oggetti Esprime le somiglianze tra le classi, semplificando la definizione di una classe e riducendola a una o più classi simili Rappresenta
DettagliRiassunto. 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
DettagliClassi. Oggetti e classi. Creazione e inizializzazione di oggetti in C++ Distruzione di oggetti in C++
Informatica 3 Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Lezione 7 -
DettagliIL 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
DettagliProgrammazione 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.
DettagliCorso di Laurea Ingegneria Informatica Laboratorio di Informatica
Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente
DettagliProgrammazione 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
DettagliProgettazione del Software
Progettazione del Software Simulazione di esame Domenico Fabio Savo Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Sapienza Università di Roma Anno Accademico 2015/2016
Dettaglipublic 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
DettagliProgrammazione II Compitino (Vers. B)
Programmazione II Compitino (Vers. B) 15 gennaio 2015 Cognome Jackson Nome Michael Matricola 696969 Anno di corso 1 Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi
DettagliFondamenti 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
DettagliEreditarietà (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...
DettagliTIPI 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
DettagliProgrammazione 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
DettagliCorso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 07 Oggetti e Java Marzo 2010 Programmazione Java 1 Contenuti Il linguaggio Java Applicazioni Java e il metodo main Esempi di applicazioni
DettagliCapitolo 9. Tipi enumerativi, tipi generici e interfacce. c 2005 Pearson Education Italia Capitolo 9-1 / 73
Capitolo 9 Tipi enumerativi, tipi generici e interfacce c 2005 Pearson Education Italia Capitolo 9-1 / 73 Sommario: Tipi enumerativi, tipi generici e interfacce 1 Definizione di tipi enumerativi La classe
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
DettagliCorso 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
DettagliProgrammazione II Compitino (Vers. A)
Programmazione II Compitino (Vers. A) 15 gennaio 2015 Cognome... Nome... Matricola... Anno di corso... Nei seguenti quesiti, quando vi è richiesto di scrivere un programma, potete limitarvi al corpo del
DettagliLaboratorio 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
DettagliProva di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:
Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione
DettagliClassi, Ereditarietà e Polimorfismo. Lezione 7
Classi, Ereditarietà e Polimorfismo Lezione 7 Scopo della Lezione Presentare il concetto di classe ed oggetto come istanza della classe; Affrontare il concetto di ereditarietà tra classi e le sue ricadute
DettagliModulo 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
DettagliStrutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05
Strutture dati Il che cosa e il come Il che cosa ed il come Struttura dati: descrive come sono organizzati i dati e come sono realizzate le operazioni su di essi (cioe come si accede ai dati) Specifica
DettagliGESTIONE DEGLI ERRORI
GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori
DettagliOCA 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