![]() |
Programmazione Orientata agli Oggetti |
Materiale didattico:
Lezione |
Argomenti |
Materiale |
---|---|---|
01-10-2008 |
Presentazione del corso. Dalla programmazione imperativa alla
programmazione orientata agli oggetti. Principi base dell'approccio
object-oriented. Concetti di classe e oggetto. Relazioni tra classi
ed oggeti. Proprietà fondamentali della programmazione orientata
agli oggetti: classificazione, incapsulamento, ereditarietà,
polimorfismo.
|
|
Documentazione del codice. Organizzazione dei file in packages. | Download | |
02-10-2008 |
Esercitazione sui richiami a Java (a cura dell'Ing. Noemi Tempera). | |
08-10-2008 |
Overloading di metodi e costruttori. | |
Ereditarietà (in Java): concetti di superclasse (supertipo o anche classe base), sottoclasse e membri ereditabili. Overriding di metodi. Differenze tra overloading ed overriding. Le keyword final e super. Ereditarietà singola e multipla (cenni alle interfacce in Java). La superclasse universale Object: i metodi clone(), equals(Object o), toString(). |
|
|
15-10-2008 |
Polimorfismo. Conversione dei tipi: upcasting (esplicito ed implicito), downcasting. Classi astratte. Polimorfismo e compilazione: controllo statico dei tipi e risoluzione di tipo early binding per i metodi in overloading. Polimorfismo ed esecuzione (interpretazione): controllo dinamico dei tipi e risoluzione di tipo (late) dynamic binding per i metodi in overriding. Esercitazione. | |
17-10-2008 |
Esercitazione (a cura dell'Ing. Noemi Tempera) | |
22-10-2008 |
Ereditarietà multipla. Utilità e svantaggi. | Ereditarietà: dettagli ed approfondimenti |
L'ereditarietà multipla in Java: le interfacce. Differenze tra classi ed interfacce. Raffinamento delle nozioni di tipo, supertipo e sottotipo alla luce delle interfacce. Utilità delle interfacce: ruoli e riuso. Le interfacce Comparable e Comparator. Esempi. |
Un esempio su un caso particolare di estensione di classi ed implementazione di interfacce |
|
Esercitazione. | ||
24-10-2008 |
Esercitazione (a cura dell'Ing. Noemi Tempera) | |
29-10-2008 |
Aspetti evoluti sull'utilizzo delle interfacce in Java: l'estensione
di interfacce. Discussione riepilogativa e comparativa dei meccanismi
per la creazione di nuovi tipi base in Java. Discussione riepilogativa
e comparativa dei meccanismi per la creazione di nuovi tipi in Java, definiti
come estensione di tipi preesistenti.
Nozioni di tipo statico e tipo dinamico. Relazione tra tipo statico ed overloading. Relazione tra tipo dinamico ed overriding. |
Download |
Esercitazione | Download | |
05-11-2008 |
La gestione delle eccezioni in Java. Motivazioni. La gerarchia delle
eccezioni in Java: eccezioni di tipo checked ed unchecked. La clausola
throws. L'effetto di una eccezione. Politiche di gestione delle
eccezioni: delega e gestione diretta tramite try-catch-finalize.
Esempi.
Cenni sulla gestione dell'I/O in Java: stream di caratteri e/o di byte. Esempi. |
Download |
07-11-2008 | Esercitazione (a cura dell'Ing. Noemi Tempera) | Download |
12-11-2008 | Le strutture dati fondamentali in Java. Motivazioni ed aspetti basilari dei Generics. | Download |
Collezioni e liste generiche. L'interfaccia Collection<E>. L'interfaccia Iterator<E>. Iterazione for-each. Collezioni e tipi primitivi: boxing e unboxing. L'interfaccia List<E>. Le classi concrete ArrayList<E> e LinkedList<E>. Funzioni di utilità su liste: la classe Collections. Criteri di ordinamento: le interfacce Comparable<T> (ordinamento naturale) e Comparator<T> (ordinamento diverso da quello naturale). Esempi di uso. | Download | |
14-11-2008 | Esercitazione (a cura dell'Ing. Noemi Tempera) | Download |
19-11-2008 | Insiemi generici.Criteri di equivalenza tra elementi per la gestione dei duplicati negli insiemi. Le interfacce Set<E> e SortedSet<E>. Cenni alle tavole hash. Le implementazioni di Set<E>: la classe HashSet<E> ed i metodi hashcode() ed equals(); la classe TreeSet<E> ed i metodi compareTo() e compare(). Criteri generali per la definizione coerente dei metodi hashcode(), equals() e compareTo() (o compare()). Esempi uso. | Download |
Mappe generiche. Il concetto di mappa. Le interfacce Map<K,V> e SortedMap<K,V>. I metodi dell'interfaccia Map<K,V>. Le implementazioni dell'interfaccia Map<K,V>: le classi | Download | |
Esercitazione di ricapitolazione | Download |
Si ringrazia il Prof. Merialdo per aver reso pubblicamente disponibile il materiale didattico del proprio corso.