Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
les
Problmes
P r in cip e d e la g n r icit e n Ja v a ( 1 /3 )
La
Exemple
P r in cip e d e la g n r icit e n Ja v a ( 2 / 3 )
Exemple
P r in cip e d e la g n r icit e n Ja v a ( 3 /3 )
Une
Instancier
M ca n ism e d e la g n r icit
A
Une
Les
Le
En
U t ilisa t io n d e s v a r ia b le s d e t y p e
Les
Les
On
On
G n r icit e t a b st r a ct io n
Les
On
Les objets utiliss dans la classe instancie seront par contre forcment des
instances de classes concrtes
Il
V a r ia b le d e t y p e e t m t h o d e d e cla sse
Il
H r it a g e e t g n r icit ( 1 /2 )
On
H r it a g e e t g n r icit ( 2 / 2 )
Les
Si C <T> extends D <T> alors C <T> est une sous-classe de D <T> (au
sens o toute instance de l'une est instance de l'autre)
Cette relation d'hritage n'est pas valide entre instanciations de C et D par des
types diffrents, mme si ces types sont lis par hritage!
10
M t h o d e s g n r iq u e s
Une
L'appel
11
T y p e s co n t r a in t s
Problme
on veut pouvoir manipuler les types paramtres (appeler des mthodes sur
des instances de ces types, ...)
Solution
on prcise qu'un type paramtre hrite d'une classe ou d'une (ou plusieurs)
interface(s) qui possde(ent) les mthodes que l'on veut utiliser sur les
instances du type
public class MyClass <Type1 extends OtherClass & Interface1 & Interface2, Type2> {
...
Exemple :
public class MyList <T extends Comparator> {
...
}
12
I n st a n cia t io n a v e c jo k e r ( 1 / 3 )
Problme
Exemple :
public static void printNumber(ArrayList<Number> l){
for(Iterator i = l.iterator();i.hasNext();){
System.out.println(l.next());
}
}
13
I n st a n cia t io n a v e c jo k e r ( 2 / 3 )
Solution
Exemples :
public static void printNumber(ArrayList<? extends Number> l){
for(Iterator i = l.iterator();i.hasNext();){
System.out.println(l.next());
}
}
public static <T> void fillElement(ArrayList<? super T> l, T e){
for(int i = 0;i<l.size();i++){
l.set(i,e);
}
}
14
I n st a n cia t io n a v e c jo k e r ( 3 / 3 )
De
De
tels types avec joker ne peuvent pas tre utiliss pour crer
des objets ou des tableaux (sauf si le type est non contraint)
new ArrayList<? extends Integer>(); // interdit
new List<? extends Integer>[10]; // interdit
new List<?>[10]; // autoris
Le
15
Co n clu sio n
La
La
La
16
A u t r e s n o u v e a u t s d e Ja v a 1 . 5 ( 1 / 2 )
Nombre variable d'arguments :
Un seul argument variable par mthode, toujours en fin de liste d'arguments
On peut substituer un tableau l'argument
public void myMethod(String t, Object... arg){
for(int i=0;i<arg.length;i++){
...
}
}
...
myMethod("truc","un","deux","trois",4);
Autoboxing
Boucle
17
A u t r e s n o u v e a u t s d e Ja v a 1 . 5 ( 2 / 2 )
Enumrations
Import
static :
Amlioration
de la javadoc
18