|
Syllabus 1) Elementi introduttivi di programmazione ad oggetti in C++. - Richiami sui puntatori, stack, dereferenziazione di strutture - Richiami sugli arrays e sulla loro relazione con i puntatori - Operatori new e delete, memory leaks - Allocazione dinamica di memoria: heap - Passaggio dalle strutture agli oggetti. - Cenni di modellazione UML 2) Introduzione a Java - Introduzione al linguaggio - Cenni di I/O in Java - Eccezioni e blocco try/catch. - Modificatori 3) Ereditarietà e polimorfismo. - Costruttori sintetizzati automaticamente. - metodo finalize - this e super - Overloading/overriding - Principio di Parna - Principio di sostituzione di Liskov - Coercion - dynamic e static binding. - Interfacce - Esempi di interfacce e ereditarietà nelle API di Java 2 4) Approfondimenti di programmazione ad oggetti - Uguaglianza e identità di oggetti - Copia di oggetti: copie profonde vs. copie superficiali. Metodo clone. - Variabili e metodi statici 5) Introduzione alla grafica in Java: Swing. - Gerarchia della classi di grafica - Le pricipali classi grafiche - Pluggable Look and Feel - Pattern Model View Controller 6) Eventi: - Low level events / Semantic events - Modelli di gestione degli eventi - Adapters - Inner Classes e Anonymous Inner Classes 7) Complementi: - Applets Javadoc - Jar |
Conoscenza dei costrutti fondamentali della programmazione imperativa in C. | |
Il corso introduce le tecniche e i costrutti della programmazione ad oggetti come una evoluzione necessaria per affrontare il problema della crescente complessità degli artefatti software. Alla fine del corso lo studente dovrà aver acquisito familiarità con i concetti di classe, oggetto, ereditarietà, polimorfismo, information hiding, binding statico e dinamico. Verranno utilizzati come linguaggi di programmazione il C++ e Java. |
Bruce Eckel, Thinking in C++: Introduction to Standard C++, Prentice Hall; ISBN: 139798099 Bruce Eckel, Thinking in Java, Apogeo, ISBN: 88-7303-998-7 Materiale on line reso disponibile durante il corso | |
|
|