1 / 21

F ondamenti di informatica T-A Esercitazione 6 : Eclipse, Ereditarietà

F ondamenti di informatica T-A Esercitazione 6 : Eclipse, Ereditarietà. AA 2012/2013 Tutor : Domenico Di Carlo <domenico.dicarlo@studio.unibo.it>. Eclipse. Avviate eclipse tramite il file eclipse.exe che potete trovare (in laboratorio) all'indirizzo -> C:ApplicativiEclipse.

avedis
Télécharger la présentation

F ondamenti di informatica T-A Esercitazione 6 : Eclipse, Ereditarietà

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fondamenti di informatica T-AEsercitazione 6 : Eclipse, Ereditarietà AA 2012/2013 Tutor : Domenico Di Carlo <domenico.dicarlo@studio.unibo.it>

  2. Eclipse • Avviate eclipse tramite il file eclipse.exe che potete trovare (in laboratorio) all'indirizzo -> C:\Applicativi\Eclipse Fondamenti di informatica A-K - Domenico Di Carlo

  3. Primo avvio, scelta workspace • Workspace: cartella che contiene i progetti • In LAB3 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) Fondamenti di informatica A-K - Domenico Di Carlo

  4. Basics • Il primo progetto: • Creazione di un nuovo progetto • FileNewJava Project • Poi, nel progetto, aggiungere classi tramite : FileNewClass Fondamenti di informatica A-K - Domenico Di Carlo

  5. Javac e java • Con eclipse non c'è bisogno di compilare, eclipse compila in automatico. Quindi potete "dimenticare" il comando javac da prompt dei comandi • Il corrispettivo del comando "java MiaClasse" è il pulsante : • L'output verrà stampato in basso nella finestra : Fondamenti di informatica A-K - Domenico Di Carlo

  6. Concetto base • 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 • Può aggiungere funzionalità proprie • Può ridefinirne il funzionamento di metodi esistenti (polimorfismo) Classe base Classi derivate Fondamenti di informatica A-K - Domenico Di Carlo

  7. Un po' di teoria • 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 Fondamenti di informatica A-K - Domenico Di Carlo

  8. Ereditarietà tra classi Fondamenti di informatica A-K - Domenico Di Carlo

  9. 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) Fondamenti di informatica A-K - Domenico Di Carlo

  10. 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", 123456); • System.out.print(p.toString()); • Output (notare il polimorfismo) : • Mi chiamo Mario, numero di matricola 123546 • Esempio KO : • Studente s = new Persona("Mario"); • Esempio KO : • Studente s = new Impiegato("Mario", 1400); Fondamenti di informatica A-K - Domenico Di Carlo

  11. 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 • manon si può, in generale, precisare comeperché questo ovviamente dipende dallo specifico animale Fondamenti di informatica A-K - Domenico Di Carlo

  12. 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 classeaggiunge o modifica funzionalità della classe base (già "completa") • Una classe che eredita da una classe astrattafornisce funzionalità al posto della classe base. Cioè la classe base dice cosa "promette" di fare, la classe concreta lo fa Fondamenti di informatica A-K - Domenico Di Carlo

  13. Interfacce • Una interfaccia è ananaloga 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 Fondamenti di informatica A-K - Domenico Di Carlo

  14. 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 • -> compareTo (T object) • Proviamo ad implementarla ! (Esercitazione 61) Fondamenti di informatica A-K - Domenico Di Carlo

  15. Interfacce vs Classi astratte • 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 • 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) Fondamenti di informatica A-K - Domenico Di Carlo

  16. Esercitazione 6.2 • Realizzare la seguente tassonomia : • Creare un'interfaccia IImpiegato 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 Fondamenti di informatica A-K - Domenico Di Carlo

  17. Esercitazione 6.2 • 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 Esercitazione 62) deve creare i dati di alcuni impiegati di vostra invenzione e calcolare (e stampare a video) la retribuzione dovuta ad ogni impiegato. Fondamenti di informatica A-K - Domenico Di Carlo

  18. Esercitazione 6.2 - A lezione di UML Interfaccia Classe astratta Metodo astratto Classi concrete Fondamenti di informatica A-K - Domenico Di Carlo

  19. Esercizio 6.3 • 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). Fondamenti di informatica A-K - Domenico Di Carlo

  20. Esercizio 6.3 • 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 reflexCanon, modello 5DMark3, acquistatail 13/05/2012 per € 2985, 22.3 megapixel con sensibilità ISO 128000, con specchio a pentaprisma; • Unamacchina a rullinoHolga 120N, acquistatail 22/07/1999 per € 66, sensibilità ASA 1600. • Unamirrorless Nikon 1 V1, acquistatail 01/9/2012 per € 499, 10.1 megapixel, sensibilità ISO 3200, dotata di mirinoelettronico; • Unaistantanea Polaroid Supercolor 600, acquistatail 10/12/1993 del valore di €94, modellopellicoleSerie 600. Fondamenti di informatica A-K - Domenico Di Carlo

  21. Tassonomia Classe astratta Interfaccia Prezzo protected Metodo astratto Variabili statiche Classi concrete Fondamenti di informatica A-K - Domenico Di Carlo

More Related