LINGUAGGI DI PROGRAMMAZIONE: PROGRAMMAZIONE A OGGETTI (LPPO)
docente: Elio Giovannetti

PROGRAMMA A.A. 1997-98

.

1. Introduzione alla programmazione ad oggetti.
Moduli e visibilità nei linguaggi tradizionali, moduli senza stato e moduli con stato.
Classi e oggetti, campi, istanziazione e costruttori, protezione e visibilità, ereditarietà e classi derivate, binding dinamico e metodi virtuali, messaggi e metodi, polimorfismo.  Metodi e campi statici.
Programmazione a oggetti in C++. Confronto fra C e C++.

2. Introduzione alla programmazione in Java: confronto fra C++ e Java.
Tipi -base in C++ e Java. Assenza di puntatori espliciti in Java, garbage collection.
Compilazione ed esecuzione di un programma Java. Strutturazione in packages.
La classe Object e la classe Class. Upcasting e downcasting.
Array e vettori in C++ e Java. Classi-involucro.
Ereditarità multipla in C++ e classe-base virtuale, interfacce.Java.

3. La programmazione generica: cenni.
Dall'ML ai templates del C++ (cenni). Una proposta di costrutti per la programmazione generica in Java (Generic Java).

4. Riflessione e polimorfismo (dr. E. Grasso).
I costrutti per la riflessione in Java. Un esempio di applicazione: la realizzazione di un ORB riflessivo.

5. L' AWT e il modello degli eventi della versione 1.1
Componenti, contenitori, layout manager, eventi, ascoltatori di eventi, adattatori. Grafica elementare.
La classe Observable e l'interfaccia Observer: il paradigma MVC.

6. Programmazione per componenti (dr. E. Grasso).
Confronto fra le nozioni di libreria e di framework. Programmazione per componenti e cenni sui Java Beans.

7. Streams e files.

8. La concorrenza in Java.
La classe Thread e l'interfaccia Runnable, programmi multithreaded. La sincronizzazione in Java: i locks, i metodi sincronizzati, i metodi wait e notify e i monitors.
 

Dove studiare:
 
C. Horstmann, Practical Object-Oriented Development in C++ and Java, J. Wiley
C.Horstmann, G. Cornell, Core Java, volume I, Sun Microsystems Press, Prentice Hall.
J. Hunt, Java and Object Orientation, Springer.

Altri testi consigliati:

Horstmann-Cornell, Core Java, volume II, Sun Microsystems Press, Prentice Hall.