Diario delle lezioni

  1. 3/3/08. Presentazione del corso. Richiami ed esercizi sui tipi base Java. Assegnato l'esercizio BitCat.
  2. 5/3/08. Memory layout e passaggio di parametri. Concatenazione dei costruttori: this e super. Eccezioni, differenza tra verificate e non.
  3. 10/3/08. Eccezioni ed overriding. Sistema dei tipi: tipi, valori, relazione di sottotipo, assegnabilità. Tipo dichiarato (statico) e tipo effettivo (dinamico). Operatore instanceof. Conversioni esplicite di tipo (cast) tra tipi primitivi.
  4. 12/3/08. Conversioni esplicite di tipo tra riferimenti. Algoritmo di risoluzione del binding dinamico.
  5. 17/3/08. Esercizio BitCat. Esercizio binding dinamico. Esercizio cast. Riflessione: la classe Class. Il metodo equals.
  6. 31/3/08. Linee guida per l'implementazione del metodo equals. Metodo equals ed ereditarietà. Esercizio binding dinamico 17/7/06.
  7. 2/4/08. Classi interne normali e statiche. Implementare una lista singolarmente concatenata. Gli iteratori. Il pattern Iterator.
  8. 7/4/08. Visibilità protected. L'interfaccia List, le classi ArrayList e LinkedList. Esercizio Impianto-Apparecchio del 25/3/08. Metodo clone.
  9. 9/4/08. Classi locali. Classi anonime. Interfacce Comparable e Comparator. Metodi sort della classe Collections.
  10. 14/4/08. Esercizio PreorderIterator del 27/4/06. Interfacce grafiche con Swing/AWT. Il pattern Observer.
  11. 16/4/08. Esercizio DividersIterator. Esercizio FunnyOrder. Il framework Model-View-Controller. Il pattern Strategy.
  12. 21/4/08. Prova intercorso.
  13. 23/4/08. Discussione prova intercorso. I pattern Decorator e Composite.
  14. 28/4/08. Autoboxing. Programmazione generica. Classi, interfacce e metodi parametrici. Le versioni parametriche di Iterator ed Iterable. Il ciclo for-each.
  15. 30/4/08. Memory layout di sottoclassi e di classi interne. Le classi parametriche e la relazione di sottotipo. Limiti superiori dei parametri di tipo.
  16. 5/5/08. Il parametro attuale di tipo "?". Limiti superiori ed inferiori per "?". Le versioni parametriche di Comparable e Comparator. Esempi.
  17. 7/5/08. La libreria Java Collection Framework: insiemi e liste. L'implementazione della programmazione generica: la cancellazione. Limitazioni nell'uso dei parametri di tipo.
  18. 12/5/08. La libreria Java Collection Framework: mappe e funzioni accessorie. Riflessione. Il metodo getClass, il costrutto ".class" e il metodo Class.forName().
  19. 14/5/08. Riflessione: classi Class, Method, Field.
  20. 19/5/08. Il tipo restituito dal metodo getClass. Classi enumerate. Esercizio "Plane".
  21. 21/5/08. Classi enumerate. Esercizio "reset". Multithreading. La classe Thread e l'interfaccia Runnable. Attendere e interrompere un thread.
  22. 26/5/08. Comunicazione e sincronizzazione tra thread.
  23. 28/5/08. Metodi sincronizzati ed overriding. Esercizio "Astronomia". Il pattern Template Method. L'annotazione "@Override".
  24. 4/6/08. Riepilogo generale. Esercitazione.