Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 /...

15
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

Transcript of Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 /...

Page 1: Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15. ESERCIZIO 1 (SOLUZIONE Classe Main (1)) Fondamenti di Informatica T-1 Allegra

Fondamenti di Informatica T-1Ereditarieta

Tutor:Allegra De Filippo

[email protected]

a.a. 2016/2017

Fondamenti di Informatica T-1 Allegra De Filippo 1 / 15

Page 2: Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15. ESERCIZIO 1 (SOLUZIONE Classe Main (1)) Fondamenti di Informatica T-1 Allegra

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

Page 3: Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15. ESERCIZIO 1 (SOLUZIONE Classe Main (1)) Fondamenti di Informatica T-1 Allegra

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

Page 4: Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15. ESERCIZIO 1 (SOLUZIONE Classe Main (1)) Fondamenti di Informatica T-1 Allegra

Ereditarieta: esempio

Fondamenti di Informatica T-1 Allegra De Filippo 4 / 15

Page 5: Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15. ESERCIZIO 1 (SOLUZIONE Classe Main (1)) Fondamenti di Informatica T-1 Allegra

Attenzione alla protezione delle variabili

Fondamenti di Informatica T-1 Allegra De Filippo 5 / 15

Page 6: Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15. ESERCIZIO 1 (SOLUZIONE Classe Main (1)) Fondamenti di Informatica T-1 Allegra

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

Page 7: Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15. ESERCIZIO 1 (SOLUZIONE Classe Main (1)) Fondamenti di Informatica T-1 Allegra

Ereditarieta: parole chiave

Fondamenti di Informatica T-1 Allegra De Filippo 7 / 15

Page 8: Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15. ESERCIZIO 1 (SOLUZIONE Classe Main (1)) Fondamenti di Informatica T-1 Allegra

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

Page 9: Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15. ESERCIZIO 1 (SOLUZIONE Classe Main (1)) Fondamenti di Informatica T-1 Allegra

ESERCIZIO 1 (SOLUZIONE Classe Persona)

Fondamenti di Informatica T-1 Allegra De Filippo 9 / 15

Page 10: Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15. ESERCIZIO 1 (SOLUZIONE Classe Main (1)) Fondamenti di Informatica T-1 Allegra

ESERCIZIO 1 (SOLUZIONE Classe Impiegato)

Fondamenti di Informatica T-1 Allegra De Filippo 10 / 15

Page 11: Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15. ESERCIZIO 1 (SOLUZIONE Classe Main (1)) Fondamenti di Informatica T-1 Allegra

ESERCIZIO 1 (SOLUZIONE Classe Studente)

Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15

Page 12: Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15. ESERCIZIO 1 (SOLUZIONE Classe Main (1)) Fondamenti di Informatica T-1 Allegra

ESERCIZIO 1 (SOLUZIONE Classe Main (1))

Fondamenti di Informatica T-1 Allegra De Filippo 12 / 15

Page 13: Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15. ESERCIZIO 1 (SOLUZIONE Classe Main (1)) Fondamenti di Informatica T-1 Allegra

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

Page 14: Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15. ESERCIZIO 1 (SOLUZIONE Classe Main (1)) Fondamenti di Informatica T-1 Allegra

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

Page 15: Fondamenti di Informatica T-1 - unibo.it · Fondamenti di Informatica T-1 Allegra De Filippo 11 / 15. ESERCIZIO 1 (SOLUZIONE Classe Main (1)) Fondamenti di Informatica T-1 Allegra

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