Chap12

1346 mots 6 pages
Chapitre 12

Le JDK 1.5

1

Quelques nouveautés:



Généricité



Nouvelle forme syntaxique pour for



Emballage/déballage pour les enveloppes de types primitifs



Méthodes avec un nombre variable d’arguments



Formatage des entrées(/sorties)

2

Généricité
Retour sur les classes de collections
Les classes de collections Java manipulent des objets du type le plus général: Object




Avantage: souplesse
Inconvénients: viennent du fait que l'on est souvent amené à manipuler des collections d'objets d'un type spécifique.

Exemple: une liste d'étudiants
List l=new ArrayList();
Etudiant e=new Etudiant();
l.add(e);
... for (Iterator it=l.iterator();it.hasNext();){ e=(Etudiant) it.next();
e.affiche();
}

Que se passe-t-il:
– si on oublie de caster ?
– si l contient autre chose que des étudiants ?

3

Solution (avant JDK 5.0)
Ecrire une classe spéciale pour chaque collection d'un type donné.
Exemple (suite): pour Etudiant, on définit une classe
ListeEtudiant qui utilise un délégué de type List class ListeEtudiant{ private List l;

public boolean ajouteEtudiant(Etudiant e){

}

// + implementation d'un mécanisme d'itération
}

Problème: on doit tout réecrire pour chaque nouveau type.  On aimerait pouvoir définir un « patron » de classe avec un paramètre de type E que l’on pourrait instancier par le type d’objets qui nous intéresse.

4

Généricité
(JDK 1.5)
Possibilité d'écrire du code utilisant des paramètres de type. Solution Java: proche des templates du C++
Exemple (suite):
Nouvelle classe de collection: ArrayList<E>
– classe/type générique.
– E: paramètre formel de type.
On peut ensuite instancier la classe avec le type qui nous intéresse:
ArrayList<Etudiant>=new ArrayList<Etudiant>( );

Définit un type « liste d'objets de type Etudiant»

5

Avant:
List l=new ArrayList();
Etudiant e=new Etudiant();
l.add(e);
... for (Iterator it=l.iterator();it.hasNext();){ e=(Etudiant) it.next();
e.affiche();
}

Avec les classes génériques:
List<Etudiant> l=new

en relation

  • Chap01
    5061 mots | 21 pages
  • lola est dangeureux
    1506 mots | 7 pages
  • Chap7
    5584 mots | 23 pages
  • R Sum Python
    255 mots | 2 pages
  • Lenore12
    290 mots | 2 pages
  • Candide cahpitre 12
    350 mots | 2 pages
  • Chap19
    3102 mots | 13 pages
  • C CHAP11
    3152 mots | 13 pages
  • Histoire des arts
    1036 mots | 5 pages
  • chap9
    1511 mots | 7 pages
  • Leçon sur les antonymes et synonymes
    307 mots | 2 pages
  • C CHAP13
    1859 mots | 8 pages
  • Chap06
    912 mots | 4 pages
  • benji
    493 mots | 2 pages
  • le reboisement et la lutte contre les feux de brousse
    848 mots | 4 pages