- *
PSA - Problem Solving e Algoritmi
Progettazione orientata agli oggetti: identificazione delle componenti e definizione delle responsabilita'; definizione del comportamento e delle interazioni fra moduli; specifica dell'interfaccia; concetto di stato.
- *
POO - Programmazione Orientata agli Oggetti
Benefici della programmazione orientata agli oggetti: incapsulamento delle informazioni, maggiore affidabilita' e potenzialita' di riutilizzo del codice, condivisione di codice, polimorfismo, rapidita' di prototipazione.
- *
POO - Programmazione Orientata agli Oggetti
Ereditarieta': sottoclassi, tipi e compatibilita' per sostituzione. Specializzazione e altre forme di ereditarieta'. Ereditarieta' del codice ed ereditarieta' del comportamento. Selezione dinamica dei metodi. Confronto fra ereditarieta' e composizione relative a classi; composizione dinamica. Classi nidificate. Clonazione. Polimorfismo e variabili polimorfe.
- *
PSA - Problem Solving e Algoritmi
Overloading. Overriding: sostituzione e raffinamento. Metodi astratti. Pattern di progetto: modulo adattatore; composizione di moduli; modulo osservatore; condivisione di dati; fabbrica astratta; iteratore; decoratore (wrapper); strategia.
- *
PSA - Problem Solving e Algoritmi
Linguaggio di programmazione Java.
- *
POO - Programmazione Orientata agli Oggetti
Nozioni di base: moduli interagenti, messaggi e metodi, responsabilita', classi e istanze, gerarchie di classi e ereditarieta', overriding di metodi, eccezioni.