Slides:

Schema della lezione:
Obiettivo: Presentare gli strumenti offerti da Java per la programmazione
generica (basati sulla ereditarietà da Object) e le eccezioni
- La classe Object
- Il metodo equals()
- Il metodo toString()
- Programmazione Generica
- la classe ArrayList
- la classe Wrapper
- Le eccezioni
- motivazioni
- come si creano, lanciano e catturano
Materiale bibliografico:
- Horstmann, Capitolo 5 (Par.
5.2 e 5.5), Capitolo 11 (Par. 11.1, 11.2 e 11.3)
- Alcuni errori o commenti sul libro:
- pag. 230 e seguenti: si traduce ArrayList con "elenco di
array". In effetti, è preferibile utilizzare il nome proprio ArrayList
(che non ha molto a che fare con "elenchi di array")
- pag. 235 (8 righi prima della fine pagina): quello che chiama
"elenco collegato" è una "lista a puntatori"...
insomma list in informatica si traduce "lista" non
"elenco"!
- pag.237 (5 righi dalla fine pagina): "tipo essenziale"
significa "tipo definito" e si riferisce agli interi, booleani
etc.
- pag. 245 (10 righi dall'inizio pagina): "newInsatnce()" è
ovviamente "newInstance()".
Altri link interessanti:
Domande per la auto-verifica della comprensione degli argomenti
Le domande più difficili vengono indicate con (*)
- A cosa serve la classe Object? Per quali utilizzi potremmo farne a meno?
- Quali sono le 5 caratteristiche che deve avere un metodo equals() e
quali sono le motivazioni per ciascuna di esse?
- Come viene implementato il metodo equals() da Object? Può essere
fatto meglio?
- Cosa fa il metodo toString()?
- A cosa serve la programmazione generica?
- Perché ArrayList supporta la programmazione generica? Cioè quale sua
caratteristica rende possibile l'uso della programmazione generica?
- Perché il metodo find statico illustrato non funzione su array di
interi?
- A cosa servono le classi wrapper?
- (*) Perché per creare una DoubleArrayList non si può usare la
ereditarietà da ArrayList?
- Quale è la differenza tra le eccezioni derivate da RuntimeException
da Exception e da Error?
- Quali sono le regole che specificano in che oerdine il codice nel
corpo try.. catch, nelle diverse clausole catch e nella clausola finally viene
eseguito?
- Come posso lanciare/cogliere/creare una eccezione?
- Come funziona il meccanismo per trattare le eccezioni una volta
lanciate?
|