SlideShare uma empresa Scribd logo
1 de 15
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

Mais conteúdo relacionado

Semelhante a Chap1lla génèricité.pptx

Interface collectionsinter
Interface collectionsinterInterface collectionsinter
Interface collectionsinter
RYMAA
 
Langage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté ObjetLangage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté Objet
Mohammed Jaafar
 
Diagramme de classe
Diagramme de classeDiagramme de classe
Diagramme de classe
Ilhem Daoudi
 

Semelhante a Chap1lla génèricité.pptx (20)

Csharp2014
Csharp2014Csharp2014
Csharp2014
 
Refractoring java generics by inferring wildcards
Refractoring java generics by inferring wildcardsRefractoring java generics by inferring wildcards
Refractoring java generics by inferring wildcards
 
Qualité de code et bonnes pratiques
Qualité de code et bonnes pratiquesQualité de code et bonnes pratiques
Qualité de code et bonnes pratiques
 
Introduction java
Introduction javaIntroduction java
Introduction java
 
Java
JavaJava
Java
 
Patrons de creation
Patrons de creationPatrons de creation
Patrons de creation
 
Interface collectionsinter
Interface collectionsinterInterface collectionsinter
Interface collectionsinter
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
Cours de JAVA de base
Cours de JAVA  de baseCours de JAVA  de base
Cours de JAVA de base
 
575
575575
575
 
Langage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté ObjetLangage Java et Programmation Orienté Objet
Langage Java et Programmation Orienté Objet
 
Chapitre 2 classe et objet
Chapitre 2   classe et objetChapitre 2   classe et objet
Chapitre 2 classe et objet
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdf
 
Code Complete
Code CompleteCode Complete
Code Complete
 
Dotnet csharp
Dotnet csharpDotnet csharp
Dotnet csharp
 
Retours sur java 8 devoxx fr 2016
Retours sur java 8 devoxx fr 2016Retours sur java 8 devoxx fr 2016
Retours sur java 8 devoxx fr 2016
 
Seance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptxSeance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptx
 
Cours_Java.pdf
Cours_Java.pdfCours_Java.pdf
Cours_Java.pdf
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objets
 
Diagramme de classe
Diagramme de classeDiagramme de classe
Diagramme de classe
 

Mais de Sana REFAI (9)

Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigésAlgo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
Chapitre 2 : Les Listes chainées en Algo et C
Chapitre 2 : Les Listes chainées en Algo et CChapitre 2 : Les Listes chainées en Algo et C
Chapitre 2 : Les Listes chainées en Algo et C
 
la complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicitéla complexité des algorithmes en toute simplicité
la complexité des algorithmes en toute simplicité
 
Chap2: lescollections
Chap2: lescollections Chap2: lescollections
Chap2: lescollections
 
Pfe
PfePfe
Pfe
 
Cours algo: Les pointeurs
Cours algo: Les pointeursCours algo: Les pointeurs
Cours algo: Les pointeurs
 
Kinect
Kinect Kinect
Kinect
 
Gestion de projets
Gestion de projetsGestion de projets
Gestion de projets
 

Chap1lla génèricité.pptx

  • 1. 1 Programmation Orientée Objet Avancée Année Universitaire 2022/2023 Niveau : License L2- DSI Semestre2 Sana REFAI sana.refai@gmail.com 1
  • 2. 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
  • 3. Chapitre 1: La gé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 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
  • 9. 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
  • 10. Plusieurs types paramètres On peut utiliser plusieurs types paramètres : 10
  • 11. 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
  • 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

Notas do Editor

  1. Rechercher un element ds un tableau
  2. Rechercher un element ds un tableau
  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