Java/Generics: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m →‎Approfondimenti: correggo link e aggiungo materiale
Riga 130:
 
== Approfondimenti ==
Per approfondire il tema della programmazione generica, si rimanda alle seguenti voci della Wikipedia in lingua inglese:
*[[:w:en:Parametric polymorphism|Parametric polymorphism]]
 
; Materiale presente sul sito della Oracle
*Si consiglia di leggere il [http://download.oracle.com/javase/tutorial/extra/generics/index.html tutorial sui generics] presente sul sito della Oracle (di cui è disponibile anche una [http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf versione in formato PDF]).
Line 139 ⟶ 136:
; Materiale di terze parti
*Angelika Langer, [http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html Java Generics FAQs]
 
== La programmazione generica in informatica ==
Con la programmazione generica si ottiene il cosiddetto ''[[w:Polimorfismo (informatica)#Polimorfismo_parametrico|polimorfismo parametrico]]'', chiamato così perché i tipi effettivi sono passati al codice come parametri. Non va confuso con l'altro tipo di polimorfismo riscontrato spesso in programmazione, che è il ''polimorfismo per inclusione'', e che si ottiene usando i meccanismi di ereditarietà tra tipi.
 
Il polimorfismo parametrico si basa sulla definizione dei cosiddetti ''tipi universali'', che hanno questo nome perché il codice scritto vale ''per ogni'' tipo effettivo ammesso; la clausola "per ogni" si esprime matematicamente con il cosiddetto "[[w:quantificatore universale|quantificatore universale]]". I tipi universali corrispondono alle ''type variables'' del Java.<br />
Analogamente, il polimorfismo per inclusione si basa sulla definizione di ''tipi esistenziali'', che hanno questo nome perché ''esiste almeno un'' tipo compatibile; la clausola "esiste almeno un" si esprime matematicamente con il cosiddetto "[[w:quantificatore esistenziale|quantificatore esistenziale]]".
 
== Note ==