Fondamenti di Informatica T-1 Ereditariet` a Tutor: Allegra De Filippo allegra.defi[email protected] a.a. 2016/2017 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 15
Fondamenti di Informatica T-1Ereditarieta
Tutor:Allegra De Filippo
a.a. 2016/2017
Fondamenti di Informatica T-1 Allegra De Filippo 1 / 15
Ereditarieta: definizione
Meccanismo per definire una nuova classe (classe derivata o classefiglio) come specializzazione di un’altra (classe base o classe padre)
• La classe base modella un concetto generico
• La classe derivata modella un concetto piu specifico
Fondamenti di Informatica T-1 Allegra De Filippo 2 / 15
Ereditarieta: classe derivata
La classe derivata:
• Dispone di tutte le funzionalita (attributi e metodi) dellaclasse base
• Puo aggiungere funzionalita proprie
• Puo ridefinire il funzionamento di metodi esistenti(polimorfismo)
Fondamenti di Informatica T-1 Allegra De Filippo 3 / 15
Ereditarieta: esempio
Fondamenti di Informatica T-1 Allegra De Filippo 4 / 15
Attenzione alla protezione delle variabili
Fondamenti di Informatica T-1 Allegra De Filippo 5 / 15
Modificatore protected
PROBLEMA:il livello di protezione private impedisce a chiunque di accedere aldato, anche a una classe derivata
• va bene per dati ”veramente privati”
• ma e troppo restrittivo nella maggioranza dei casi
SOLUZIONE:Per sfruttare appieno l’ereditarieta occorre rilassare un po’ il livellodi protezione
• non c’e bisogno di usare il livello public
• si deve usare il livello protected: in questo modo le variabili diistanza della classe padre possono essere direttamenteaccedute dai figli
Fondamenti di Informatica T-1 Allegra De Filippo 6 / 15
Ereditarieta: parole chiave
Fondamenti di Informatica T-1 Allegra De Filippo 7 / 15
ESERCIZIO 1 (SVOLTO (1))
Scrivere un programma che definisca le seguenti classi:
• La classe Persona che e composta da un nome.
• La classe figlio Impiegato che presenta un ulteriore attributo:il salario espresso con un numero reale.
• La classe figlio Studente che presenta anche la matricolaunivoca per lo studente.
• Oltre ad i metodi getter e setter, ridefinire per le classi ilmetodo toString(), facendo in modo che le classi figliemostrino il proprio contenuto.
• Scrivere inoltre una classe contenente un main di prova pertestare il corretto funzionamento delle classi. Si richiede dicreare alcune istanze di Studente e Impiegato e stampare avideo prima tutte le persone, poi solo gli studenti ed infine gliimpiegati.
Fondamenti di Informatica T-1 Allegra De Filippo 8 / 15
ESERCIZIO 1 (SOLUZIONE Classe Persona)
Fondamenti di Informatica T-1 Allegra De Filippo 9 / 15
ESERCIZIO 1 (SOLUZIONE Classe Impiegato)
Fondamenti di Informatica T-1 Allegra De Filippo 10 / 15
ESERCIZIO 1 (SOLUZIONE Classe Studente)
Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15
ESERCIZIO 1 (SOLUZIONE Classe Main (1))
Fondamenti di Informatica T-1 Allegra De Filippo 12 / 15
ESERCIZIO 2
Scrivere un programma per la gestione di racconti brevi.
• La classe Testo e composta da un autore, un titolo ed uncontenuto.
• Scrivere inoltre una classe figlio chiamata TestoCensuratoche presenta un ulteriore attributo, chiamato ”parolaproibita”.
• Oltre ad i metodi getter e setter, ridefinire per entrambe leclassi il metodo toString(), facendo in modo che la classeTestoCensurato mostri il proprio contenuto andando asostituire ogni occorrenza della parola proibita con unasuccessione di tre asterischi.
• Scrivere inoltre una classe contenente un main di prova pertestare il corretto funzionamento delle classi.
Fondamenti di Informatica T-1 Allegra De Filippo 13 / 15
ESERCIZIO 3 (1)
Scrivere un programma che consenta di gestire il pagamento deglistipendi dei dipendenti di un’azienda.Di ogni dipendente, si memorizza il nome, l’indirizzo e il telefono.L’azienda ha due categorie di dipendenti:
• Impiegati, con stipendio mensile
• Giornalieri, con stipendio mensile calcolato in base al numerodi giorni di lavoro (numero di giorni * base di retribuzionegiornaliera)
L’azienda deve gestire, oltre ai dati dei dipendenti, le buste paga:ogni busta paga e caratterizzata da un id univoco (data +progressivo numerico), e contiene i dati del dipendente, la data el’importo dovuto al dipendente.
Fondamenti di Informatica T-1 Allegra De Filippo 14 / 15
ESERCIZIO 3 (2)
• Si crei un metodo giornoDiPaga() che, relativamente ad unacerta data, crei le buste paga dei dipendenti, le memorizzi e lemostri a video.
• Si implementino metodi per ottenere le liste di dipendenti edelle buste paga.
• Nel main si istanzi un’azienda, si inseriscano dei dipendenti, sistampino le liste dei dipendenti e si esegua almeno unaggiornamento delle buste paga.
Fondamenti di Informatica T-1 Allegra De Filippo 15 / 15