Chapitre III  POO JAVA Saloua Ben Yahia
Objectifs <ul><li>Connaître les concepts de la programmation par objet et les mettre en oeuvre avec Java </li></ul><ul><li...
Plan <ul><li>Objectifs </li></ul><ul><li>Définition  d’un Objet </li></ul><ul><li>Définition d’une Classe </li></ul><ul><l...
1. Définition d’un Objet 1.1 Exemples…Suite <ul><li>Date du jour </li></ul><ul><ul><li>Attributs : jour (20), mois (01),an...
1. Définition d’un Objet 1.2 Définition  <ul><li>Un objet peut être </li></ul><ul><ul><li>une valeur (instance) d’un type ...
1. Définition d’un Objet 1.2 Définition…Suite <ul><li>Un objet est caractérisé par </li></ul><ul><ul><li>Un ensemble  d’at...
Plan <ul><li>Objectifs </li></ul><ul><li>Définition  d’un Objet </li></ul><ul><li>Définition d’une Classe </li></ul><ul><u...
2. Définition d’une classe 2.1  Définition <ul><li>C’est un modèle de définition pour les objets </li></ul><ul><ul><li>en ...
2. Définition d’une classe 2.2  Exemple <ul><li>class Cercle { </li></ul><ul><li>int rayon; </li></ul><ul><li>int epaisseu...
2. Définition d’une classe 2.2  Exemple…Suite <ul><li>class Date{ </li></ul><ul><li>int jour,moi,annee; </li></ul><ul><li>...
2.Définition d’une classe 2.2  Exemple…Suite <ul><li>class Individu { </li></ul><ul><li>String nom; </li></ul><ul><li>int ...
2.Définition d’une classe 2.3  Qu’est-ce qu’une classe ? <ul><li>Une classe définit les modèles des objets qui en seront i...
2.Définition d’une classe 2.3  Qu’est-ce qu’une classe ?...Suite <ul><li>Dans l’exemple de la page précédente, on définit ...
2.Définition d’une classe 2.3  Qu’est-ce qu’une classe ?...Suite <ul><li>Les méthodes définies dans la classe existent de ...
2.Définition d’une classe 2.3  Qu’est-ce qu’une classe ?...Suite Deux instances de la classe voiture
Plan <ul><li>Objectifs </li></ul><ul><li>Définition  d’un Objet </li></ul><ul><li>Définition d’une Classe </li></ul><ul><l...
3.Instanciation.  3.1 Mais que cela signifie-t-il ? <ul><li>La création d’un objet à partir d’une classe est appelé  insta...
3.Instanciation  3.2 Opérateur new <ul><li>L’opérateur new sert à instancier un Objet de type structuré </li></ul><ul><li>...
3.Instanciation  3.2 Opérateur new…suite <ul><li>En java il existe deux types </li></ul><ul><ul><li>Types primitifs </li><...
3.Instanciation  3.2 Opérateur new…suite <ul><li>Les types structurés sont instanciés avec l’opérateur new </li></ul><ul><...
3.Instanciation.  3.3 Mais que se passe t-il en mémoire <ul><li>Création de l’Objet </li></ul><ul><li>Création de la référ...
3.Instanciation.  3.3 Mais que se passe t-il en mémoire <ul><li>class MaDate { </li></ul><ul><li>int day; </li></ul><ul><l...
3.Instanciation.  3.3 Mais que se passe t-il en mémoire <ul><li>MaDate today= new MaDate(); </li></ul><ul><li>Création de ...
3.Instanciation.  3.3 Mais que se passe t-il en mémoire…suite
3.Instanciation.  3.3 Mais que se passe t-il en mémoire 7 7 x int y int Cas création de deux variables primitives de type ...
3.Instanciation.  3.3 Mais que se passe t-il en mémoire <ul><li>Date d1=new Date(); </li></ul><ul><li>Date d2=new Date(); ...
3.Instanciation.  3.3 Mais que se passe t-il en mémoire mois int anne int @1 @1 jour int 0 0 0 d1 Date @2 @2 jour int 0 0 ...
3.Instanciation.  3.3 Mais que se passe t-il en mémoire <ul><li>Lorsque vous exécutez new pour allouer de la mémoire pour ...
3.Instanciation.  3.4  Initialisation des variables <ul><li>Dans Java, une valeur nulle indique que la variable ne renvoie...
3.Instanciation.  3.4 Initialisation des variables <ul><li>Note –  L’initialisation par défaut ne concerne que les variabl...
4.Instanciation.  4.1 Le garbage collecteur <ul><li>Les objets qui ne sont plus référencés sont détruit automatiquement pa...
4.Instanciation.  4.1 Le garbage collecteur mois int anne int @2 @2 jour int 0 0 0 d2 Date mois int anne int @1 @1 jour in...
4.Instanciation.  4.1 Le garbage collecteur mois int anne int @1 @1 jour int 0 0 0 d1 Date @1 @2 d2 Date anne int jour int...
Plan <ul><li>Objectifs </li></ul><ul><li>Définition  d’un Objet </li></ul><ul><li>Définition d’une Classe </li></ul><ul><l...
4. L’opérateur .  <ul><li>Java autorise l’accès aux attributs d’un objet  (nom, age et salaire) à l’aide de l’opérateur (....
4. L’opérateur .  <ul><li>class Individu { </li></ul><ul><li>String nom; </li></ul><ul><li>int age; </li></ul><ul><li>floa...
4. L’opérateur .  Deux instances de la classe voiture
Plan <ul><li>Objectifs </li></ul><ul><li>Définition  d’un Objet </li></ul><ul><li>Définition d’une Classe </li></ul><ul><l...
5.Méthode 5.1 Définition <ul><li>Définition de méthodes </li></ul><ul><li><type_retour><nom>(<liste_arguments>)   <bloc> <...
5.Méthode 5.2 Exemples <ul><li>class Cercle{ </li></ul><ul><li>double rayon; </li></ul><ul><li>//méthode périmètre </li></...
5.Méthode 5.2 Exemples <ul><li>class Voiture{ </li></ul><ul><li>String marque,couleur; </li></ul><ul><li>int kilometrage,v...
5.Méthode 5.1 Type de retour <ul><li><type_retour><nom>(<liste_arguments>)   <bloc> </li></ul><ul><li>Si la méthode ne ret...
5.Méthode 5.1 Type de retour <ul><li><type_retour><nom>(<liste_arguments>)   <bloc> </li></ul><ul><li>La liste des argumen...
5.Méthode 5.1 Type de retour <ul><li>Par convention le nom d’une méthode commence par une miniscule </li></ul><ul><li>Si l...
5.Méthode 5.1 Type de retour <ul><li>Les variables définies dans le bloc sont appelées variables locales </li></ul><ul><li...
5.Méthode 5.1 Type de retour. <ul><li>L’opérateur point sert à appeler une méthode par rapport à un objet </li></ul><ul><l...
5.Méthode 5.1 Type de retour <ul><li>Cercle c1=new Cercle(); </li></ul><ul><li>c1.perimetre()  </li></ul><ul><li>//faux ca...
6.Les constructeurs <ul><li>Le constructeur est ce qui appelé juste après l’opérateur  new </li></ul><ul><li>Date d = new ...
6.Les constructeurs <ul><li>En fait, l’étape trois de la construction d’un nouvel objet consiste à appeler une méthode d’i...
6.Les constructeurs <ul><li>Le constructeur créer un objet avec la valeur par défaut attribuée aux attributs </li></ul><ul...
6.Les constructeurs <ul><li>class Date{ </li></ul><ul><li>int jour,moi,annee; </li></ul><ul><li>} </li></ul><ul><li>Date d...
6.Les constructeurs <ul><li>Il existe un moyen plus simple pour réaliser deux choses en même temps : </li></ul><ul><ul><li...
6.Les constructeurs <ul><li>class Date{ </li></ul><ul><li>int jour,mois,annee; </li></ul><ul><li>Date(int j, int m, int a)...
6.Les constructeurs <ul><li>Il n’y a que deux façons d’obtenir un constructeur :  </li></ul><ul><ul><li>ou bien vous l’écr...
6.Les constructeurs <ul><li>Exemple : </li></ul><ul><li>class Xyz { </li></ul><ul><li>// variables membres </li></ul><ul><...
6.Les constructeurs <ul><li>class Date{ </li></ul><ul><li>int jour,mois,annee; </li></ul><ul><li>Date(int j, int m, int a)...
6.Les constructeurs   Constructeur par défaut <ul><li>Nous avons dit que toute classe comporte au moins un constructeur, m...
6.Les constructeurs   Constructeur par défaut <ul><li>class Date{ </li></ul><ul><li>int jour,mois,annee; </li></ul><ul><li...
6.Les constructeurs <ul><li>Si on ajoute une déclaration de constructeur comportant des arguments à une classe, vous perde...
6.Les constructeurs <ul><li>class Date{ </li></ul><ul><li>int jour,mois,annee; </li></ul><ul><li>Date(int j, int m, int a)...
Plan <ul><li>Objectifs </li></ul><ul><li>Définition  d’un Objet </li></ul><ul><li>Définition d’une Classe </li></ul><ul><l...
7.Le type String  <ul><li>Les variables de type String sont des objets </li></ul><ul><li>Ecrire  </li></ul><ul><li>String ...
7.Le type String <ul><li>Exemple </li></ul><ul><li>int x = 7;//x a un type primitif  </li></ul><ul><li>int y = x;//y a un ...
7.Le type String
Plan <ul><li>Objectifs </li></ul><ul><li>Définition  d’un Objet </li></ul><ul><li>Définition d’une Classe </li></ul><ul><l...
8.UML 8.1 Définition <ul><li>Unified Modelling Language </li></ul><ul><li>Représenter les classes sous formes universelle ...
8.Modélisation  UML
 
Récapitulatif Terminologique <ul><li>Regroupement de types de données </li></ul><ul><li>Classe </li></ul><ul><li>Objet </l...
Prochain SlideShare
Chargement dans…5
×

Java uik-chap4-poo3

1 190 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 190
Sur SlideShare
0
Issues des intégrations
0
Intégrations
8
Actions
Partages
0
Téléchargements
56
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Java uik-chap4-poo3

  1. 1. Chapitre III POO JAVA Saloua Ben Yahia
  2. 2. Objectifs <ul><li>Connaître les concepts de la programmation par objet et les mettre en oeuvre avec Java </li></ul><ul><li>Créer une classe avec des attributs et des méthodes </li></ul><ul><li>Instancier des objets et leur envoyer des messages </li></ul>
  3. 3. Plan <ul><li>Objectifs </li></ul><ul><li>Définition d’un Objet </li></ul><ul><li>Définition d’une Classe </li></ul><ul><li>Instanciation </li></ul><ul><li>Garbage Collector </li></ul><ul><li>Opérateur . </li></ul><ul><li>Méthode </li></ul><ul><li>Constructeur </li></ul><ul><li>String </li></ul><ul><li>UML </li></ul>
  4. 4. 1. Définition d’un Objet 1.1 Exemples…Suite <ul><li>Date du jour </li></ul><ul><ul><li>Attributs : jour (20), mois (01),année (2009) </li></ul></ul><ul><ul><li>Méthodes : s’afficher </li></ul></ul><ul><ul><li>Date d’aujourd’hui est un objet </li></ul></ul><ul><li>Voiture </li></ul><ul><ul><li>Attributs : marque , vitesse, couleur, kilométrage </li></ul></ul><ul><ul><li>Méthodes : accélérer, freiner, arrêter </li></ul></ul><ul><li>Ma Voiture est un Objet : </li></ul><ul><li>Marque : Toyota, Kilométrage 150000, couleur : verte, vitess=0km/h. </li></ul>
  5. 5. 1. Définition d’un Objet 1.2 Définition <ul><li>Un objet peut être </li></ul><ul><ul><li>une valeur (instance) d’un type abstrait, une “représentation” d’une classe. </li></ul></ul><ul><ul><li>une abstraction d’un objet physique du monde réel, c’est-à-dire dont on a retenu uniquement les caractéristiques intéressantes lors de la modélisation. </li></ul></ul>
  6. 6. 1. Définition d’un Objet 1.2 Définition…Suite <ul><li>Un objet est caractérisé par </li></ul><ul><ul><li>Un ensemble d’attributs typés et nommés représentant ses propriétés statiques. Ces attributs portent des valeurs attachées à l’objet. L’ensemble de ces valeurs à un instant donné constitue l’état de l’objet à cet instant, </li></ul></ul><ul><ul><li>Un ensemble de méthodes définissant son comportement et ses réactions aux stimulations externes. </li></ul></ul><ul><ul><li>Ces méthodes implémentent les algorithmes invocables sur cet objet, </li></ul></ul><ul><ul><li>Une identité qui permet de le distinguer des autres objets, de manière unique. </li></ul></ul>
  7. 7. Plan <ul><li>Objectifs </li></ul><ul><li>Définition d’un Objet </li></ul><ul><li>Définition d’une Classe </li></ul><ul><ul><ul><li>Définition </li></ul></ul></ul><ul><ul><ul><li>Exemples </li></ul></ul></ul><ul><ul><ul><li>Qu’est ce donc une classe ? </li></ul></ul></ul><ul><li>Instanciation </li></ul><ul><li>Garbage Collector </li></ul><ul><li>Opérateur . </li></ul><ul><li>Constructeur </li></ul><ul><li>Méthode </li></ul><ul><li>String </li></ul>
  8. 8. 2. Définition d’une classe 2.1 Définition <ul><li>C’est un modèle de définition pour les objets </li></ul><ul><ul><li>en termes d’attributs, </li></ul></ul><ul><ul><li>en termes de méthodes. </li></ul></ul><ul><li>Les objets sont des représentations dynamiques (instanciation), “vivantes”, du modèle défini pour eux au travers de la classe. </li></ul>
  9. 9. 2. Définition d’une classe 2.2 Exemple <ul><li>class Cercle { </li></ul><ul><li>int rayon; </li></ul><ul><li>int epaisseur_trait; </li></ul><ul><li>... // autres attributs </li></ul><ul><li>... </li></ul><ul><li>} </li></ul><ul><li>Instanciation, même attributs </li></ul><ul><li>mais de valeurs différentes </li></ul>
  10. 10. 2. Définition d’une classe 2.2 Exemple…Suite <ul><li>class Date{ </li></ul><ul><li>int jour,moi,annee; </li></ul><ul><li>} </li></ul><ul><li>Aujourd’hui, demain, Le jour de l’an…sont des instances ou des objets de la classe Date </li></ul>
  11. 11. 2.Définition d’une classe 2.2 Exemple…Suite <ul><li>class Individu { </li></ul><ul><li>String nom; </li></ul><ul><li>int age; </li></ul><ul><li>float salaire; </li></ul><ul><li>} </li></ul><ul><li>Moi,toi, sont de exemples d’Individu, </li></ul>
  12. 12. 2.Définition d’une classe 2.3 Qu’est-ce qu’une classe ? <ul><li>Une classe définit les modèles des objets qui en seront instanciés </li></ul><ul><li>Dans la classe sont définis des attributs et des méthodes qui seront présents dans chaque objet qui sera instancié de la classe considérée. </li></ul><ul><li>Par convention le nom d’une classe commence toujours par une Majuscule </li></ul><ul><li>Exemple </li></ul><ul><li>class Voiture{……………} </li></ul><ul><li>class Cercle{………………} </li></ul>
  13. 13. 2.Définition d’une classe 2.3 Qu’est-ce qu’une classe ?...Suite <ul><li>Dans l’exemple de la page précédente, on définit une classe Cercle, contenant entre autres : </li></ul><ul><ul><li>un attribut rayon et </li></ul></ul><ul><ul><li>un attribut epaisseur_trait. </li></ul></ul><ul><li>Chaque cercle instancié de cette classe possédera son propre rayon et sa propre épaisseur du trait. </li></ul>
  14. 14. 2.Définition d’une classe 2.3 Qu’est-ce qu’une classe ?...Suite <ul><li>Les méthodes définies dans la classe existent de même pour chaque objet et ont un comportement identique dans chaque objet tout en y étant localisé </li></ul><ul><li>Supposons que la classe Cercle fournisse la méthode changeRayon(int new_rayon), permettant de modifier la valeur de l’attribut rayon. Si un des cercles fait appel à cette méthode, il changera son propre rayon, pas celui des autres cercles dont il ignore probablement l’existence. </li></ul>
  15. 15. 2.Définition d’une classe 2.3 Qu’est-ce qu’une classe ?...Suite Deux instances de la classe voiture
  16. 16. Plan <ul><li>Objectifs </li></ul><ul><li>Définition d’un Objet </li></ul><ul><li>Définition d’une Classe </li></ul><ul><li>Instanciation </li></ul><ul><li>Garbage Collector </li></ul><ul><li>Opérateur . </li></ul><ul><li>Méthode </li></ul><ul><li>Constructeur </li></ul><ul><li>String </li></ul><ul><li>UML </li></ul>
  17. 17. 3.Instanciation. 3.1 Mais que cela signifie-t-il ? <ul><li>La création d’un objet à partir d’une classe est appelé instanciation . Cet objet est une instance de sa classe. </li></ul><ul><li>Une instanciation se décompose en trois phases </li></ul><ul><ul><li>1. Création et initialisation des attributs en mémoire, à l’image d’une structure. </li></ul></ul><ul><ul><li>2. Appel de méthodes particulières, les constructeurs, définies dans la classe, dont l’étude est faite un peu plus loin... </li></ul></ul><ul><ul><li>3. Renvoi d’une référence sur l’objet (son identité) maintenant créé et initialisé. </li></ul></ul>
  18. 18. 3.Instanciation 3.2 Opérateur new <ul><li>L’opérateur new sert à instancier un Objet de type structuré </li></ul><ul><li>Date d1 = new Date(); </li></ul><ul><li>Date d2=new Date(); </li></ul>
  19. 19. 3.Instanciation 3.2 Opérateur new…suite <ul><li>En java il existe deux types </li></ul><ul><ul><li>Types primitifs </li></ul></ul><ul><ul><li>Types structurés ou classes </li></ul></ul><ul><li>Les types primitifs contiennent la valeur qui leur est assignée </li></ul><ul><li>Exemple : </li></ul><ul><li>int x = 7; </li></ul><ul><li>int y = x; </li></ul>
  20. 20. 3.Instanciation 3.2 Opérateur new…suite <ul><li>Les types structurés sont instanciés avec l’opérateur new </li></ul><ul><li>Exemple </li></ul><ul><li>Date d1=new Date(); </li></ul><ul><li>Date d2=new Date(); </li></ul>
  21. 21. 3.Instanciation. 3.3 Mais que se passe t-il en mémoire <ul><li>Création de l’Objet </li></ul><ul><li>Création de la référence </li></ul><ul><li>Sauvegarde de l’adresse de l’objet dans la référence </li></ul>
  22. 22. 3.Instanciation. 3.3 Mais que se passe t-il en mémoire <ul><li>class MaDate { </li></ul><ul><li>int day; </li></ul><ul><li>int month; </li></ul><ul><li>int year; </li></ul><ul><li>} </li></ul>
  23. 23. 3.Instanciation. 3.3 Mais que se passe t-il en mémoire <ul><li>MaDate today= new MaDate(); </li></ul><ul><li>Création de la référence au départ son contenu est à null (valeur par défaut d’une référence) </li></ul><ul><li>MaDate today; </li></ul><ul><li>Instanciation de l’Objet avec le new </li></ul><ul><li>new MaDate() </li></ul><ul><li>Copie de l’adresse dans la référence </li></ul><ul><li>MaDate d1 = new MaDate(); </li></ul>
  24. 24. 3.Instanciation. 3.3 Mais que se passe t-il en mémoire…suite
  25. 25. 3.Instanciation. 3.3 Mais que se passe t-il en mémoire 7 7 x int y int Cas création de deux variables primitives de type int
  26. 26. 3.Instanciation. 3.3 Mais que se passe t-il en mémoire <ul><li>Date d1=new Date(); </li></ul><ul><li>Date d2=new Date(); </li></ul>
  27. 27. 3.Instanciation. 3.3 Mais que se passe t-il en mémoire mois int anne int @1 @1 jour int 0 0 0 d1 Date @2 @2 jour int 0 0 0 d2 Date mois int anne int
  28. 28. 3.Instanciation. 3.3 Mais que se passe t-il en mémoire <ul><li>Lorsque vous exécutez new pour allouer de la mémoire pour un objet, Java affecte aux valeurs de l’espace la valeur initiale &quot;zéro&quot;. </li></ul><ul><ul><li>Pour les variables numériques, la valeur est réellement zéro. Pour les variables booléennes (boolean), la valeur est false. </li></ul></ul><ul><ul><li>Pour les références, c’est à dire toute variable d’un type d’objet, une valeur spéciale à null indique qu’il n’y a pas de structure associée. </li></ul></ul>
  29. 29. 3.Instanciation. 3.4 Initialisation des variables <ul><li>Dans Java, une valeur nulle indique que la variable ne renvoie pas à un objet. </li></ul><ul><li>La machine virtuelle détecte si vous utilisez une telle référence et vous en interdit l’accès . Ce comportement sera présenté plus en détail dans le module ultérieur Exceptions . </li></ul><ul><li>Exemple </li></ul><ul><li>Voiture v1; //v1 est à null </li></ul><ul><li>v1.freiner(20);//génère une exception à l’exécution </li></ul>
  30. 30. 3.Instanciation. 3.4 Initialisation des variables <ul><li>Note – L’initialisation par défaut ne concerne que les variables membres de la classe et non les variables locales au bloc d’instructions. </li></ul><ul><li>Une erreur se produit à la compilation si vous tentez d’utiliser une variable locale avant qu’une valeur ne lui ait été affectée de façon définie. </li></ul>
  31. 31. 4.Instanciation. 4.1 Le garbage collecteur <ul><li>Les objets qui ne sont plus référencés sont détruit automatiquement par le garbage Collecteur </li></ul><ul><li>Exemple </li></ul><ul><li>Date d1=new Date(); </li></ul><ul><li>Date d2=new Date(); </li></ul><ul><li>d2=d1; </li></ul>
  32. 32. 4.Instanciation. 4.1 Le garbage collecteur mois int anne int @2 @2 jour int 0 0 0 d2 Date mois int anne int @1 @1 jour int 0 0 0 d1 Date
  33. 33. 4.Instanciation. 4.1 Le garbage collecteur mois int anne int @1 @1 jour int 0 0 0 d1 Date @1 @2 d2 Date anne int jour int 0 0 0 mois int
  34. 34. Plan <ul><li>Objectifs </li></ul><ul><li>Définition d’un Objet </li></ul><ul><li>Définition d’une Classe </li></ul><ul><li>Instanciation </li></ul><ul><li>Garbage Collector </li></ul><ul><li>Opérateur . </li></ul><ul><li>Méthode </li></ul><ul><li>Constructeur </li></ul><ul><li>String </li></ul><ul><li>UML </li></ul>
  35. 35. 4. L’opérateur . <ul><li>Java autorise l’accès aux attributs d’un objet (nom, age et salaire) à l’aide de l’opérateur (.), de la façon suivante : </li></ul>
  36. 36. 4. L’opérateur . <ul><li>class Individu { </li></ul><ul><li>String nom; </li></ul><ul><li>int age; </li></ul><ul><li>float salaire; </li></ul><ul><li>} </li></ul><ul><li>Individu un = new Individu() </li></ul><ul><li>Individ deux=new Individu(); </li></ul><ul><li>un.nom = &quot;Jean&quot;; deux.nom=&quot;Jo&quot;; </li></ul><ul><li>un.age = 24; </li></ul><ul><li>deux.age=30; </li></ul><ul><li>un.salaire = 10000; </li></ul><ul><li>deux.salaire=2000; </li></ul>
  37. 37. 4. L’opérateur . Deux instances de la classe voiture
  38. 38. Plan <ul><li>Objectifs </li></ul><ul><li>Définition d’un Objet </li></ul><ul><li>Définition d’une Classe </li></ul><ul><li>Instanciation </li></ul><ul><li>Garbage Collector </li></ul><ul><li>Opérateur . </li></ul><ul><li>Méthode </li></ul><ul><li>Constructeur </li></ul><ul><li>String </li></ul><ul><li>UML </li></ul>
  39. 39. 5.Méthode 5.1 Définition <ul><li>Définition de méthodes </li></ul><ul><li><type_retour><nom>(<liste_arguments>) <bloc> </li></ul><ul><li>Exemple : </li></ul><ul><li>void accelerer(int v) </li></ul><ul><li>{vitesse=vitesse+v;} </li></ul><ul><li>double perimetre() </li></ul><ul><li>{return 2*rayon*3.14;} </li></ul>En-tête ou signature En-tête ou signature bloc bloc
  40. 40. 5.Méthode 5.2 Exemples <ul><li>class Cercle{ </li></ul><ul><li>double rayon; </li></ul><ul><li>//méthode périmètre </li></ul><ul><li>double perimetre() </li></ul><ul><li>{ </li></ul><ul><li>return 2*rayon*3.14; </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  41. 41. 5.Méthode 5.2 Exemples <ul><li>class Voiture{ </li></ul><ul><li>String marque,couleur; </li></ul><ul><li>int kilometrage,vitesse; </li></ul><ul><li>//méthode accélérer </li></ul><ul><li>void accelerer(int v){ </li></ul><ul><li>vitesse=vitesse+v; </li></ul><ul><li>} </li></ul><ul><li>//méthode freiner </li></ul><ul><li>void freiner(int v){ </li></ul><ul><li>vitesse=vitesse-v; </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  42. 42. 5.Méthode 5.1 Type de retour <ul><li><type_retour><nom>(<liste_arguments>) <bloc> </li></ul><ul><li>Si la méthode ne retourne rien alors le type de retour est void </li></ul><ul><li>Une méthode peur retourner un </li></ul><ul><ul><li>Type primitif (int, boolean, double) </li></ul></ul><ul><ul><li>Type structuré (String, Cercle…) </li></ul></ul><ul><ul><li>Tableau (a voir plus tard) </li></ul></ul><ul><li>Si la méthode retourne une valeur alors la dernière instruction doit être un return et la valeur retournée doit être du type spécifié </li></ul>
  43. 43. 5.Méthode 5.1 Type de retour <ul><li><type_retour><nom>(<liste_arguments>) <bloc> </li></ul><ul><li>La liste des argument peut contenir une liste de 0 à n paramètres séparés par une , </li></ul><ul><li>Le nom des arguments doit être en minuscule </li></ul><ul><li>Les arguments peuvent être de type : </li></ul><ul><ul><li>Type primitifs </li></ul></ul><ul><ul><li>Type structurés </li></ul></ul><ul><ul><li>Tableaux…. </li></ul></ul>
  44. 44. 5.Méthode 5.1 Type de retour <ul><li>Par convention le nom d’une méthode commence par une miniscule </li></ul><ul><li>Si le nom est composée de deux mots alors le deuxième commence par une majuscule </li></ul><ul><li>Exemples: </li></ul><ul><ul><li>déplacerCercle(int x, int y){…..} </li></ul></ul><ul><ul><li>freiner(int v){} </li></ul></ul>
  45. 45. 5.Méthode 5.1 Type de retour <ul><li>Les variables définies dans le bloc sont appelées variables locales </li></ul><ul><li>Leur portée ne dépasse par le bloc de la méthode </li></ul><ul><li>Elle doivent être nécessairement initialisées </li></ul>
  46. 46. 5.Méthode 5.1 Type de retour. <ul><li>L’opérateur point sert à appeler une méthode par rapport à un objet </li></ul><ul><li>refObjet.methode() </li></ul><ul><li>Si la méthode est une expression, c’est-à-dire retourne une valeur alors la valeur retournée doit être exploitée c.a.d soit : </li></ul><ul><ul><li>Sauvegardée dans une variable </li></ul></ul><ul><ul><li>Affichée </li></ul></ul><ul><ul><li>… </li></ul></ul>
  47. 47. 5.Méthode 5.1 Type de retour <ul><li>Cercle c1=new Cercle(); </li></ul><ul><li>c1.perimetre() </li></ul><ul><li>//faux car perimetre() est une expression ( //retourne le perimetre calculé) </li></ul><ul><li>double p=c1.perimetre() //correct </li></ul><ul><li>Voiture v1=new Voiture(); </li></ul><ul><li>v1.accelerer() //Correct car accélérer n’est pas une expression (ne retourne rien) </li></ul>
  48. 48. 6.Les constructeurs <ul><li>Le constructeur est ce qui appelé juste après l’opérateur new </li></ul><ul><li>Date d = new Date() </li></ul><ul><li>//Date() est un constructeur </li></ul>
  49. 49. 6.Les constructeurs <ul><li>En fait, l’étape trois de la construction d’un nouvel objet consiste à appeler une méthode d’initialisation. </li></ul><ul><li>Par convention, cette méthode est appelée constructeur . </li></ul><ul><li>Pour écrire une méthode appelée constructeur, vous devez observer ces deux règles : </li></ul><ul><ul><li>1. Le nom de la méthode doit correspondre exactement au nom de la classe. </li></ul></ul><ul><ul><li>2. Aucun type de retour ne doit être déclaré pour la méthode. </li></ul></ul>
  50. 50. 6.Les constructeurs <ul><li>Le constructeur créer un objet avec la valeur par défaut attribuée aux attributs </li></ul><ul><li>Les valeurs initiales de jour/mois/annee de l’objet avec la référence d est 0 </li></ul><ul><li>Comment faire pour avoir la date du 09/01/2009 il faut utiliser l’opérateur . Pour accéder et modifier les attributs. </li></ul>
  51. 51. 6.Les constructeurs <ul><li>class Date{ </li></ul><ul><li>int jour,moi,annee; </li></ul><ul><li>} </li></ul><ul><li>Date d1=new Date(); </li></ul><ul><li>//Date() est un constructeur </li></ul><ul><li>d1.jour=9;d1.mois=1;d1.annee=2009; </li></ul>
  52. 52. 6.Les constructeurs <ul><li>Il existe un moyen plus simple pour réaliser deux choses en même temps : </li></ul><ul><ul><li>Créer l’objet </li></ul></ul><ul><ul><li>Affecter les valeurs souhaitées aux attribus au moment même de la création de l’objet </li></ul></ul><ul><li>Il faut écrire et utiliser un constructeur paramétré </li></ul>
  53. 53. 6.Les constructeurs <ul><li>class Date{ </li></ul><ul><li>int jour,mois,annee; </li></ul><ul><li>Date(int j, int m, int a){ </li></ul><ul><li>jour=j; </li></ul><ul><li>mois=m; </li></ul><ul><li>annee=a; </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>… </li></ul><ul><li>Date d1=new Date(9,1,2009) </li></ul>
  54. 54. 6.Les constructeurs <ul><li>Il n’y a que deux façons d’obtenir un constructeur : </li></ul><ul><ul><li>ou bien vous l’écrivez, </li></ul></ul><ul><ul><li>ou, si vous n’avez pas écrit de constructeur du tout, la classe possède un constructeur unique par défaut comportant un code vide. </li></ul></ul><ul><li>Note – Vous pouvez définir plusieurs constructeurs avec des listes d’arguments différents. Lorsque vous effectuez un appel de new Xyz(liste_arguments), la liste d’arguments détermine quel constructeur doit être utilisé. </li></ul>
  55. 55. 6.Les constructeurs <ul><li>Exemple : </li></ul><ul><li>class Xyz { </li></ul><ul><li>// variables membres </li></ul><ul><li>Xyz() { </li></ul><ul><li>// définition de l’objet </li></ul><ul><li>} </li></ul><ul><li>Xyz(int x) { </li></ul><ul><li>// définition de l’objet avec un paramètre </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  56. 56. 6.Les constructeurs <ul><li>class Date{ </li></ul><ul><li>int jour,mois,annee; </li></ul><ul><li>Date(int j, int m, int a){ </li></ul><ul><li>jour=j; mois=m; annee=a;} </li></ul><ul><li>Date (int j, int m){jour=j;mois=m;année=2009} </li></ul><ul><li>} </li></ul>
  57. 57. 6.Les constructeurs Constructeur par défaut <ul><li>Nous avons dit que toute classe comporte au moins un constructeur, mais avant cette section, nous n’avons écrit de constructeur pour aucune de nos classes. </li></ul><ul><li>En fait, si vous n’en écrivez pas du tout, un constructeur vous est automatiquement fourni. Ce dernier ne prend aucun argument et son corps est vide. </li></ul><ul><li>C’est à cause du constructeur par défaut que nous avons pu dire new Xxx(), sans quoi cette opération aurait été incorrecte. </li></ul>
  58. 58. 6.Les constructeurs Constructeur par défaut <ul><li>class Date{ </li></ul><ul><li>int jour,mois,annee; </li></ul><ul><li>//constructeur par défaut invisible //avec 0-arguments </li></ul><ul><li>Date(){jour=0;mois=0;annee=0;} </li></ul><ul><li>} </li></ul>
  59. 59. 6.Les constructeurs <ul><li>Si on ajoute une déclaration de constructeur comportant des arguments à une classe, vous perdez le constructeur par défaut. </li></ul><ul><li>A partir de là, les appels de new Xxx() causeront des erreurs de compilation. </li></ul>
  60. 60. 6.Les constructeurs <ul><li>class Date{ </li></ul><ul><li>int jour,mois,annee; </li></ul><ul><li>Date(int j, int m, int a){ </li></ul><ul><li>jour=j; </li></ul><ul><li>mois=m; </li></ul><ul><li>annee=a; </li></ul><ul><li>} </li></ul><ul><li>//on perd le constructeur par défaut invisible </li></ul><ul><li>Date(){jour=0;mois=0;annee=0;} </li></ul><ul><li>} </li></ul><ul><li>… </li></ul><ul><li>On ne peut plus écrire Date d1=new Date() </li></ul>
  61. 61. Plan <ul><li>Objectifs </li></ul><ul><li>Définition d’un Objet </li></ul><ul><li>Définition d’une Classe </li></ul><ul><li>Instanciation </li></ul><ul><li>Garbage Collector </li></ul><ul><li>Opérateur . </li></ul><ul><li>Méthode </li></ul><ul><li>Constructeur </li></ul><ul><li>String </li></ul><ul><li>UML </li></ul>
  62. 62. 7.Le type String <ul><li>Les variables de type String sont des objets </li></ul><ul><li>Ecrire </li></ul><ul><li>String s = new String( &quot;Hello&quot; ) ; </li></ul><ul><li>Est la même chose que </li></ul><ul><li>String s = &quot;Hello&quot;; </li></ul>
  63. 63. 7.Le type String <ul><li>Exemple </li></ul><ul><li>int x = 7;//x a un type primitif </li></ul><ul><li>int y = x;//y a un type primitif </li></ul><ul><li>String s = &quot;Hello&quot;;//s a un type //structure s est donc une référence </li></ul><ul><li>String t = s; </li></ul><ul><li>String z = &quot;Bienvenue&quot;; </li></ul><ul><li>Que se passe t-il en mémoire </li></ul>
  64. 64. 7.Le type String
  65. 65. Plan <ul><li>Objectifs </li></ul><ul><li>Définition d’un Objet </li></ul><ul><li>Définition d’une Classe </li></ul><ul><li>Instanciation </li></ul><ul><li>Garbage Collector </li></ul><ul><li>Opérateur . </li></ul><ul><li>Méthode </li></ul><ul><li>Constructeur </li></ul><ul><li>String </li></ul><ul><li>UML </li></ul>
  66. 66. 8.UML 8.1 Définition <ul><li>Unified Modelling Language </li></ul><ul><li>Représenter les classes sous formes universelle </li></ul>
  67. 67. 8.Modélisation UML
  68. 69. Récapitulatif Terminologique <ul><li>Regroupement de types de données </li></ul><ul><li>Classe </li></ul><ul><li>Objet </li></ul><ul><li>Membre </li></ul><ul><li>Référence </li></ul><ul><li>Opérateur new </li></ul><ul><li>Opérateur . </li></ul><ul><li>Constructeur </li></ul><ul><li>UML </li></ul>

×