Precedente Progr. Distribuita Successiva

5: Programmazione generica e eccezioni

[Slide]
 [Schema]
 [Riferimenti]
 [Link]
[Auto-verifica]

[Inizio pagina]

Slides:


[Inizio pagina]

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

[Inizio pagina]

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()".

[Inizio pagina]

Altri link interessanti:


[Inizio pagina]

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?

Modificato il: 28/11/2003
Vittorio Scarano
Dipartimento di Informatica ed Applicazioni "R.M. Capocelli"
Università degli Studi di Salerno
vitsca@unisa.it