Java uik-chap4-poo3
Upcoming SlideShare
Loading in...5
×
 

Java uik-chap4-poo3

on

  • 855 views

 

Statistics

Views

Total Views
855
Views on SlideShare
855
Embed Views
0

Actions

Likes
0
Downloads
43
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Java uik-chap4-poo3 Java uik-chap4-poo3 Presentation Transcript

    • Chapitre III POO JAVA Saloua Ben Yahia
    • Objectifs
      • Connaître les concepts de la programmation par objet et les mettre en oeuvre avec Java
      • Créer une classe avec des attributs et des méthodes
      • Instancier des objets et leur envoyer des messages
    • Plan
      • Objectifs
      • Définition d’un Objet
      • Définition d’une Classe
      • Instanciation
      • Garbage Collector
      • Opérateur .
      • Méthode
      • Constructeur
      • String
      • UML
    • 1. Définition d’un Objet 1.1 Exemples…Suite
      • Date du jour
        • Attributs : jour (20), mois (01),année (2009)
        • Méthodes : s’afficher
        • Date d’aujourd’hui est un objet
      • Voiture
        • Attributs : marque , vitesse, couleur, kilométrage
        • Méthodes : accélérer, freiner, arrêter
      • Ma Voiture est un Objet :
      • Marque : Toyota, Kilométrage 150000, couleur : verte, vitess=0km/h.
    • 1. Définition d’un Objet 1.2 Définition
      • Un objet peut être
        • une valeur (instance) d’un type abstrait, une “représentation” d’une classe.
        • 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.
    • 1. Définition d’un Objet 1.2 Définition…Suite
      • Un objet est caractérisé par
        • 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,
        • Un ensemble de méthodes définissant son comportement et ses réactions aux stimulations externes.
        • Ces méthodes implémentent les algorithmes invocables sur cet objet,
        • Une identité qui permet de le distinguer des autres objets, de manière unique.
    • Plan
      • Objectifs
      • Définition d’un Objet
      • Définition d’une Classe
          • Définition
          • Exemples
          • Qu’est ce donc une classe ?
      • Instanciation
      • Garbage Collector
      • Opérateur .
      • Constructeur
      • Méthode
      • String
    • 2. Définition d’une classe 2.1 Définition
      • C’est un modèle de définition pour les objets
        • en termes d’attributs,
        • en termes de méthodes.
      • Les objets sont des représentations dynamiques (instanciation), “vivantes”, du modèle défini pour eux au travers de la classe.
    • 2. Définition d’une classe 2.2 Exemple
      • class Cercle {
      • int rayon;
      • int epaisseur_trait;
      • ... // autres attributs
      • ...
      • }
      • Instanciation, même attributs
      • mais de valeurs différentes
    • 2. Définition d’une classe 2.2 Exemple…Suite
      • class Date{
      • int jour,moi,annee;
      • }
      • Aujourd’hui, demain, Le jour de l’an…sont des instances ou des objets de la classe Date
    • 2.Définition d’une classe 2.2 Exemple…Suite
      • class Individu {
      • String nom;
      • int age;
      • float salaire;
      • }
      • Moi,toi, sont de exemples d’Individu,
    • 2.Définition d’une classe 2.3 Qu’est-ce qu’une classe ?
      • Une classe définit les modèles des objets qui en seront instanciés
      • 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.
      • Par convention le nom d’une classe commence toujours par une Majuscule
      • Exemple
      • class Voiture{……………}
      • class Cercle{………………}
    • 2.Définition d’une classe 2.3 Qu’est-ce qu’une classe ?...Suite
      • Dans l’exemple de la page précédente, on définit une classe Cercle, contenant entre autres :
        • un attribut rayon et
        • un attribut epaisseur_trait.
      • Chaque cercle instancié de cette classe possédera son propre rayon et sa propre épaisseur du trait.
    • 2.Définition d’une classe 2.3 Qu’est-ce qu’une classe ?...Suite
      • 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é
      • 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.
    • 2.Définition d’une classe 2.3 Qu’est-ce qu’une classe ?...Suite Deux instances de la classe voiture
    • Plan
      • Objectifs
      • Définition d’un Objet
      • Définition d’une Classe
      • Instanciation
      • Garbage Collector
      • Opérateur .
      • Méthode
      • Constructeur
      • String
      • UML
    • 3.Instanciation. 3.1 Mais que cela signifie-t-il ?
      • La création d’un objet à partir d’une classe est appelé instanciation . Cet objet est une instance de sa classe.
      • Une instanciation se décompose en trois phases
        • 1. Création et initialisation des attributs en mémoire, à l’image d’une structure.
        • 2. Appel de méthodes particulières, les constructeurs, définies dans la classe, dont l’étude est faite un peu plus loin...
        • 3. Renvoi d’une référence sur l’objet (son identité) maintenant créé et initialisé.
    • 3.Instanciation 3.2 Opérateur new
      • L’opérateur new sert à instancier un Objet de type structuré
      • Date d1 = new Date();
      • Date d2=new Date();
    • 3.Instanciation 3.2 Opérateur new…suite
      • En java il existe deux types
        • Types primitifs
        • Types structurés ou classes
      • Les types primitifs contiennent la valeur qui leur est assignée
      • Exemple :
      • int x = 7;
      • int y = x;
    • 3.Instanciation 3.2 Opérateur new…suite
      • Les types structurés sont instanciés avec l’opérateur new
      • Exemple
      • Date d1=new Date();
      • Date d2=new Date();
    • 3.Instanciation. 3.3 Mais que se passe t-il en mémoire
      • Création de l’Objet
      • Création de la référence
      • Sauvegarde de l’adresse de l’objet dans la référence
    • 3.Instanciation. 3.3 Mais que se passe t-il en mémoire
      • class MaDate {
      • int day;
      • int month;
      • int year;
      • }
    • 3.Instanciation. 3.3 Mais que se passe t-il en mémoire
      • MaDate today= new MaDate();
      • Création de la référence au départ son contenu est à null (valeur par défaut d’une référence)
      • MaDate today;
      • Instanciation de l’Objet avec le new
      • new MaDate()
      • Copie de l’adresse dans la référence
      • MaDate d1 = new MaDate();
    • 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 int
    • 3.Instanciation. 3.3 Mais que se passe t-il en mémoire
      • Date d1=new Date();
      • 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 0 d2 Date mois int anne int
    • 3.Instanciation. 3.3 Mais que se passe t-il en mémoire
      • Lorsque vous exécutez new pour allouer de la mémoire pour un objet, Java affecte aux valeurs de l’espace la valeur initiale "zéro".
        • Pour les variables numériques, la valeur est réellement zéro. Pour les variables booléennes (boolean), la valeur est false.
        • 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.
    • 3.Instanciation. 3.4 Initialisation des variables
      • Dans Java, une valeur nulle indique que la variable ne renvoie pas à un objet.
      • 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 .
      • Exemple
      • Voiture v1; //v1 est à null
      • v1.freiner(20);//génère une exception à l’exécution
    • 3.Instanciation. 3.4 Initialisation des variables
      • Note – L’initialisation par défaut ne concerne que les variables membres de la classe et non les variables locales au bloc d’instructions.
      • 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.
    • 4.Instanciation. 4.1 Le garbage collecteur
      • Les objets qui ne sont plus référencés sont détruit automatiquement par le garbage Collecteur
      • Exemple
      • Date d1=new Date();
      • Date d2=new Date();
      • d2=d1;
    • 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
    • 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
    • Plan
      • Objectifs
      • Définition d’un Objet
      • Définition d’une Classe
      • Instanciation
      • Garbage Collector
      • Opérateur .
      • Méthode
      • Constructeur
      • String
      • UML
    • 4. L’opérateur .
      • 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 :
    • 4. L’opérateur .
      • class Individu {
      • String nom;
      • int age;
      • float salaire;
      • }
      • Individu un = new Individu()
      • Individ deux=new Individu();
      • un.nom = "Jean"; deux.nom="Jo";
      • un.age = 24;
      • deux.age=30;
      • un.salaire = 10000;
      • deux.salaire=2000;
    • 4. L’opérateur . Deux instances de la classe voiture
    • Plan
      • Objectifs
      • Définition d’un Objet
      • Définition d’une Classe
      • Instanciation
      • Garbage Collector
      • Opérateur .
      • Méthode
      • Constructeur
      • String
      • UML
    • 5.Méthode 5.1 Définition
      • Définition de méthodes
      • <type_retour><nom>(<liste_arguments>) <bloc>
      • Exemple :
      • void accelerer(int v)
      • {vitesse=vitesse+v;}
      • double perimetre()
      • {return 2*rayon*3.14;}
      En-tête ou signature En-tête ou signature bloc bloc
    • 5.Méthode 5.2 Exemples
      • class Cercle{
      • double rayon;
      • //méthode périmètre
      • double perimetre()
      • {
      • return 2*rayon*3.14;
      • }
      • }
    • 5.Méthode 5.2 Exemples
      • class Voiture{
      • String marque,couleur;
      • int kilometrage,vitesse;
      • //méthode accélérer
      • void accelerer(int v){
      • vitesse=vitesse+v;
      • }
      • //méthode freiner
      • void freiner(int v){
      • vitesse=vitesse-v;
      • }
      • }
    • 5.Méthode 5.1 Type de retour
      • <type_retour><nom>(<liste_arguments>) <bloc>
      • Si la méthode ne retourne rien alors le type de retour est void
      • Une méthode peur retourner un
        • Type primitif (int, boolean, double)
        • Type structuré (String, Cercle…)
        • Tableau (a voir plus tard)
      • 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é
    • 5.Méthode 5.1 Type de retour
      • <type_retour><nom>(<liste_arguments>) <bloc>
      • La liste des argument peut contenir une liste de 0 à n paramètres séparés par une ,
      • Le nom des arguments doit être en minuscule
      • Les arguments peuvent être de type :
        • Type primitifs
        • Type structurés
        • Tableaux….
    • 5.Méthode 5.1 Type de retour
      • Par convention le nom d’une méthode commence par une miniscule
      • Si le nom est composée de deux mots alors le deuxième commence par une majuscule
      • Exemples:
        • déplacerCercle(int x, int y){…..}
        • freiner(int v){}
    • 5.Méthode 5.1 Type de retour
      • Les variables définies dans le bloc sont appelées variables locales
      • Leur portée ne dépasse par le bloc de la méthode
      • Elle doivent être nécessairement initialisées
    • 5.Méthode 5.1 Type de retour.
      • L’opérateur point sert à appeler une méthode par rapport à un objet
      • refObjet.methode()
      • 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 :
        • Sauvegardée dans une variable
        • Affichée
    • 5.Méthode 5.1 Type de retour
      • Cercle c1=new Cercle();
      • c1.perimetre()
      • //faux car perimetre() est une expression ( //retourne le perimetre calculé)
      • double p=c1.perimetre() //correct
      • Voiture v1=new Voiture();
      • v1.accelerer() //Correct car accélérer n’est pas une expression (ne retourne rien)
    • 6.Les constructeurs
      • Le constructeur est ce qui appelé juste après l’opérateur new
      • Date d = new Date()
      • //Date() est un constructeur
    • 6.Les constructeurs
      • En fait, l’étape trois de la construction d’un nouvel objet consiste à appeler une méthode d’initialisation.
      • Par convention, cette méthode est appelée constructeur .
      • Pour écrire une méthode appelée constructeur, vous devez observer ces deux règles :
        • 1. Le nom de la méthode doit correspondre exactement au nom de la classe.
        • 2. Aucun type de retour ne doit être déclaré pour la méthode.
    • 6.Les constructeurs
      • Le constructeur créer un objet avec la valeur par défaut attribuée aux attributs
      • Les valeurs initiales de jour/mois/annee de l’objet avec la référence d est 0
      • Comment faire pour avoir la date du 09/01/2009 il faut utiliser l’opérateur . Pour accéder et modifier les attributs.
    • 6.Les constructeurs
      • class Date{
      • int jour,moi,annee;
      • }
      • Date d1=new Date();
      • //Date() est un constructeur
      • d1.jour=9;d1.mois=1;d1.annee=2009;
    • 6.Les constructeurs
      • Il existe un moyen plus simple pour réaliser deux choses en même temps :
        • Créer l’objet
        • Affecter les valeurs souhaitées aux attribus au moment même de la création de l’objet
      • Il faut écrire et utiliser un constructeur paramétré
    • 6.Les constructeurs
      • class Date{
      • int jour,mois,annee;
      • Date(int j, int m, int a){
      • jour=j;
      • mois=m;
      • annee=a;
      • }
      • }
      • Date d1=new Date(9,1,2009)
    • 6.Les constructeurs
      • Il n’y a que deux façons d’obtenir un constructeur :
        • ou bien vous l’écrivez,
        • 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.
      • 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é.
    • 6.Les constructeurs
      • Exemple :
      • class Xyz {
      • // variables membres
      • Xyz() {
      • // définition de l’objet
      • }
      • Xyz(int x) {
      • // définition de l’objet avec un paramètre
      • }
      • }
    • 6.Les constructeurs
      • class Date{
      • int jour,mois,annee;
      • Date(int j, int m, int a){
      • jour=j; mois=m; annee=a;}
      • Date (int j, int m){jour=j;mois=m;année=2009}
      • }
    • 6.Les constructeurs Constructeur par défaut
      • 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.
      • 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.
      • C’est à cause du constructeur par défaut que nous avons pu dire new Xxx(), sans quoi cette opération aurait été incorrecte.
    • 6.Les constructeurs Constructeur par défaut
      • class Date{
      • int jour,mois,annee;
      • //constructeur par défaut invisible //avec 0-arguments
      • Date(){jour=0;mois=0;annee=0;}
      • }
    • 6.Les constructeurs
      • Si on ajoute une déclaration de constructeur comportant des arguments à une classe, vous perdez le constructeur par défaut.
      • A partir de là, les appels de new Xxx() causeront des erreurs de compilation.
    • 6.Les constructeurs
      • class Date{
      • int jour,mois,annee;
      • Date(int j, int m, int a){
      • jour=j;
      • mois=m;
      • annee=a;
      • }
      • //on perd le constructeur par défaut invisible
      • Date(){jour=0;mois=0;annee=0;}
      • }
      • On ne peut plus écrire Date d1=new Date()
    • Plan
      • Objectifs
      • Définition d’un Objet
      • Définition d’une Classe
      • Instanciation
      • Garbage Collector
      • Opérateur .
      • Méthode
      • Constructeur
      • String
      • UML
    • 7.Le type String
      • Les variables de type String sont des objets
      • Ecrire
      • String s = new String( &quot;Hello&quot; ) ;
      • Est la même chose que
      • String s = &quot;Hello&quot;;
    • 7.Le type String
      • Exemple
      • int x = 7;//x a un type primitif
      • int y = x;//y a un type primitif
      • String s = &quot;Hello&quot;;//s a un type //structure s est donc une référence
      • String t = s;
      • String z = &quot;Bienvenue&quot;;
      • Que se passe t-il en mémoire
    • 7.Le type String
    • Plan
      • Objectifs
      • Définition d’un Objet
      • Définition d’une Classe
      • Instanciation
      • Garbage Collector
      • Opérateur .
      • Méthode
      • Constructeur
      • String
      • UML
    • 8.UML 8.1 Définition
      • Unified Modelling Language
      • Représenter les classes sous formes universelle
    • 8.Modélisation UML
    •  
    • Récapitulatif Terminologique
      • Regroupement de types de données
      • Classe
      • Objet
      • Membre
      • Référence
      • Opérateur new
      • Opérateur .
      • Constructeur
      • UML