1
Programmation Orientée Objet Avancée
Année Universitaire 2022/2023
Niveau : License L2- DSI
Semestre2
Sana REFAI
sana.refai@gmail.com
1
Plan du cours
2
Chapitre 1: La généricité
Chapitre 2: Les collections
Chapitre 3: Les interfaces graphiques
javaFX
Chapitre 4: Gestions des évènements
Chapitre 5: Les entrées /Sorties en java
Chapitre 6: Les threads
Chapitre 5: L’accés aux BD via jdbc
2
Chapitre 1: La généricité
3
Introduction(1/4)
Cas 1 : On veut définir une notion de paire d’objets avec deux
attributs de même( int par exemple ):
 on a créé une classe spécialement pour des paires d’entiers ; si on
veut des paires de booléens il faudrait réécrire une autre classe (avec
un autre nom) qui contiendrait les mêmes méthodes
4
Introduction(2/4)
Une solution possible
Inconvénients
• les deux attributs peuvent des instances de classes différentes,
• on peut être amené à faire du transtypage (vers le bas),
• on risque des erreurs de transtypage qui ne se détecteront qu’`a
l’exécution
5
Introduction(3/4)
La solution est :
la généricité
l’usage de type paramétre. La généricité est
une notion de polymorphisme paramétrique.
Depuis la version 5.0 Java autorise la définition de
classes et d’interfaces contenant un (des)
paramètre(s) représentant un type(s). Cela permet
de décrire une structure qui pourra être
personnalisé au moment de l’instanciation à tout
type d’objet.
6
Introduction(4/4)
La solution est :
la généricité
Cette définition permet de définir ici des Paire contenant des
objets de type (uniforme) mais arbitraire.
7
Les avantages de la généricité
La généricité en Java permet de créer des classes, des
interfaces et des méthodes qui peuvent être utilisées avec
différents types de données.
La généricité, vous permet de:
• Ecrire du code plus flexible, réutilisable et sûr à l'exécution.
• Eviter les erreurs de type à l'exécution en vérifiant le type
des objets à la compilation.
• Eviter la duplication de code en créant des classes
génériques qui peuvent être utilisées avec différents types
de données.
la généricité en Java est un concept très utile pour
écrire du code plus souple et plus sûr, qui peut être utilisé
avec différents types de données sans duplication de code.
8
Utilisation de la généricité
• une classe générique doit être instanciée pour être
utilisée
• on ne peut pas utiliser un type primitif pour
l’instanciation,
• il faut utiliser les classes enveloppantes on ne peut pas
instancier avec un type générique
• une classe instancie ne peut pas servir de type de base
pour un tableau
9
Plusieurs types paramètres
On peut utiliser plusieurs types paramètres :
10
Utilisation du type paramètre
le type paramètre peut être utilise pour déclarer
des variables (attributs) sauf dans une méthode de
classe le type paramétré ne peut pas servir à
construire un objet.
11
méthodes et généricité (1/3)
 Une méthode de classe (static) ne peut pas utiliser une
variable du type paramètre dans une classe générique.
12
méthodes et généricité (2/3)
 Une méthode (de classe ou d’instance) peut être générique dans
une classe non générique. Elle utilise alors son propre type
paramètre.
 Pour utiliser une telle méthode on doit préfixer le nom de la
méthode par le type d’instanciation entre < et >.
13
méthodes et généricité (3/3)
 Une méthode (de classe ou d’instance) peut être générique dans
une classe générique. Elle peut utiliser le type paramètre de la
classe et son propre type paramètre.
14
Héritage et généricité
 une classe générique peut étendre une classe
(générique ou pas)
 Triplet< T > est une sous classe de Paire< T >
• Triplet< String > est une sous classe de Paire< String >
• Triplet< String > n’est pas une sous classe de Paire< T >
• Triplet< String > n’est pas une sous classe de Paire<
Object > bien que String soit une sous classe de Object
• Triplet< String > n’est pas une sous classe de Triplet<
Object > bien que String soit une sous classe de Object
Ce dernier point interdit donc une affectation du genre :
15

Chap1lla génèricité.pptx

  • 1.
    1 Programmation Orientée ObjetAvancée Année Universitaire 2022/2023 Niveau : License L2- DSI Semestre2 Sana REFAI sana.refai@gmail.com 1
  • 2.
    Plan du cours 2 Chapitre1: La généricité Chapitre 2: Les collections Chapitre 3: Les interfaces graphiques javaFX Chapitre 4: Gestions des évènements Chapitre 5: Les entrées /Sorties en java Chapitre 6: Les threads Chapitre 5: L’accés aux BD via jdbc 2
  • 3.
    Chapitre 1: Lagénéricité 3
  • 4.
    Introduction(1/4) Cas 1 :On veut définir une notion de paire d’objets avec deux attributs de même( int par exemple ):  on a créé une classe spécialement pour des paires d’entiers ; si on veut des paires de booléens il faudrait réécrire une autre classe (avec un autre nom) qui contiendrait les mêmes méthodes 4
  • 5.
    Introduction(2/4) Une solution possible Inconvénients •les deux attributs peuvent des instances de classes différentes, • on peut être amené à faire du transtypage (vers le bas), • on risque des erreurs de transtypage qui ne se détecteront qu’`a l’exécution 5
  • 6.
    Introduction(3/4) La solution est: la généricité l’usage de type paramétre. La généricité est une notion de polymorphisme paramétrique. Depuis la version 5.0 Java autorise la définition de classes et d’interfaces contenant un (des) paramètre(s) représentant un type(s). Cela permet de décrire une structure qui pourra être personnalisé au moment de l’instanciation à tout type d’objet. 6
  • 7.
    Introduction(4/4) La solution est: la généricité Cette définition permet de définir ici des Paire contenant des objets de type (uniforme) mais arbitraire. 7
  • 8.
    Les avantages dela généricité La généricité en Java permet de créer des classes, des interfaces et des méthodes qui peuvent être utilisées avec différents types de données. La généricité, vous permet de: • Ecrire du code plus flexible, réutilisable et sûr à l'exécution. • Eviter les erreurs de type à l'exécution en vérifiant le type des objets à la compilation. • Eviter la duplication de code en créant des classes génériques qui peuvent être utilisées avec différents types de données. la généricité en Java est un concept très utile pour écrire du code plus souple et plus sûr, qui peut être utilisé avec différents types de données sans duplication de code. 8
  • 9.
    Utilisation de lagénéricité • une classe générique doit être instanciée pour être utilisée • on ne peut pas utiliser un type primitif pour l’instanciation, • il faut utiliser les classes enveloppantes on ne peut pas instancier avec un type générique • une classe instancie ne peut pas servir de type de base pour un tableau 9
  • 10.
    Plusieurs types paramètres Onpeut utiliser plusieurs types paramètres : 10
  • 11.
    Utilisation du typeparamètre le type paramètre peut être utilise pour déclarer des variables (attributs) sauf dans une méthode de classe le type paramétré ne peut pas servir à construire un objet. 11
  • 12.
    méthodes et généricité(1/3)  Une méthode de classe (static) ne peut pas utiliser une variable du type paramètre dans une classe générique. 12
  • 13.
    méthodes et généricité(2/3)  Une méthode (de classe ou d’instance) peut être générique dans une classe non générique. Elle utilise alors son propre type paramètre.  Pour utiliser une telle méthode on doit préfixer le nom de la méthode par le type d’instanciation entre < et >. 13
  • 14.
    méthodes et généricité(3/3)  Une méthode (de classe ou d’instance) peut être générique dans une classe générique. Elle peut utiliser le type paramètre de la classe et son propre type paramètre. 14
  • 15.
    Héritage et généricité une classe générique peut étendre une classe (générique ou pas)  Triplet< T > est une sous classe de Paire< T > • Triplet< String > est une sous classe de Paire< String > • Triplet< String > n’est pas une sous classe de Paire< T > • Triplet< String > n’est pas une sous classe de Paire< Object > bien que String soit une sous classe de Object • Triplet< String > n’est pas une sous classe de Triplet< Object > bien que String soit une sous classe de Object Ce dernier point interdit donc une affectation du genre : 15

Notes de l'éditeur

  • #3 Rechercher un element ds un tableau
  • #4 Rechercher un element ds un tableau
  • #5 Rechercher un element ds un tableau
  • #6 Rechercher un element ds un tableau
  • #7 Rechercher un element ds un tableau
  • #8 Rechercher un element ds un tableau
  • #9 Rechercher un element ds un tableau
  • #10 Rechercher un element ds un tableau
  • #11 Rechercher un element ds un tableau
  • #12 Rechercher un element ds un tableau
  • #13 Rechercher un element ds un tableau
  • #14 Rechercher un element ds un tableau
  • #15 Rechercher un element ds un tableau
  • #16 Rechercher un element ds un tableau