SlideShare uma empresa Scribd logo
1 de 216
Programmation Orientée
Objet et Java
Axel KAMALAK




               www.axelkamalak.eu
La programmation orientée objet
?

 C’est la représentation du monde réel
La programmation orientée objet
?

 C’est la représentation du monde réel
  C’est la capacité de regrouper des
     paramètres dans un ensemble.
La programmation orientée objet
?

 C’est la représentation du monde réel
  C’est la capacité de regrouper des
     paramètres dans un ensemble.
   Un ensemble de principe clés qui
    permettent la mise en place d’un
                 logiciel.
Qu’est qu’une classe ?

  C’est un modèle de quelque chose
              d’abstrait.
Qu’est qu’une classe ?

  C’est un modèle de quelque chose
                  d’abstrait.
 C’est la définition qui permet de créer
                 des objets.
Qu’est qu’une classe ?
Qu’est qu’une classe ?
Actrice



 Elle a des attributs
Qu’est qu’une classe ?
Actrice
Un prénom
Un nom
Une date de naissance
Une adresse
Un lieu de naissance




Elle a des attributs
Qu’est qu’une classe ?

Un prénom
Un nom
Une date de naissance
Une adresse
Un lieu de naissance




Elle a des attributs et des méthodes
Qu’est qu’une classe ?

Un prénom                  Manger
Un nom                     Boire
Une date de naissance      Parler
Une adresse                Dormir
Un lieu de naissance       Rougir




Elle a des attributs et des méthodes
Qu’est qu’une classe ?

Un prénom                  Manger
Un nom                     Boire
Une date de naissance      Parler
Une adresse                Dormir
Un lieu de naissance       Rougir




Elle a des attributs et des méthodes
Qu’est qu’une classe ?

Un prénom                  Manger
Un nom                     Boire
Une date de naissance      Parler
Une adresse                Dormir
Un lieu de naissance       Rougir



    Ce sont les propriétés
Elle a des attributs et des méthodes
Qu’est qu’une classe ?

Un prénom                  Manger
Un nom                     Boire
Une date de naissance      Parler
Une adresse                Dormir
Un lieu de naissance       Rougir




Elle a des attributs et des méthodes
Qu’est qu’une classe ?

 Un prénom                  Manger
 Un nom                     Boire
 Une date de naissance      Parler
 Une adresse                Dormir
 Un lieu de naissance       Rougir




Ce sont les actions
qu’il peut réaliser
 Elle a des attributs et des méthodes
Qu’est qu’une classe ?
public class Fille {

private int id ;
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;
public static int nbFille =0 ;

}



      On donne le nom de la classe
Qu’est qu’une classe ?
public class Fille {

private int id ;
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;
public static int nbFille =0 ;

}


                       Ce sont les attributs.
Qu’est qu’une classe ?
public class Fille{

private int id ;
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;

public static int nbFille =0 ;

}
                  On les appelles variables
                         d’instance.
Qu’est qu’une classe ?
public class Fille {

private int id ;
                           On les appelles variables
private String nom;
private String prenom;
                                  d’instance.
private String dateNaissance;
private String lieudeNaissance;

public static int nbFille =0 ;

}

                Elles sont communes à toutes les instances.
Qu’est qu’une classe ?
public class Fille {

private int id ;
                           On les appelles variables
private String nom;
private String prenom;
                                  d’instance.
private String dateNaissance;
private String lieudeNaissance;

public static int nbFille =0 ;

}

     Elles sont communes à toutes les instances.
     Elles sont accessible uniquement par le biais d’un objet.
Qu’est qu’une classe ?
public class Fille{

private int id ;
                                 Les variables de classe
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;

public static int nbFille =0 ;

}
Qu’est qu’une classe ?
public class Fille {

private int id ;
                                 Les variables de classe
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;

public static int nbFille =0 ;

}

    Une variable de classe est une variable qui est commune à toutes
    Les instances de cette classe. Une variable de ce type peut être
    accessible sans avoir à passer par une instances de la classe.
Qu’est qu’un objet?


Un objet est l’instanciation d’une classe.
Qu’est qu’une classe ?
public class Actrice{

private int id ;
                                 Les variables de classe
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;

public static int nbFille =0 ;

}

Une variable de classe est une variable qui est commune à toutes
Les instances de cette classe. Une variable de ce type peut être
accessible sans avoir à passer par une instances de la classe.
Qu’est qu’une classe ?
public class Actrice {

private int id ;
                                 Les variables de classe
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;

public static int nbFille =0 ;

}

Une variable de classe est une variable qui est commune à toutes
Les instances de cette classe. Une variable de ce type peut être
accessible sans avoir à passer par une instances de la classe.
Qu’est qu’un objet?


Un objet est l’instanciation d’une classe.
Qu’est qu’un objet?
Qu’est qu’un objet?

Voici un objet
Qu’est qu’un objet?




Voici un objet instancié
à partir de la classe
Actrice.
Qu’est qu’un objet?

Voici un objet instancié
à partir de la classe
Actrice.
   Il dispose de toutes
   les propriétés et méthodes
    définies dans la classe Fille.
Qu’est qu’un objet?

Voici un objet instancié
à partir de la classe
Actrice.
   Il dispose de toutes
   les propriétés et méthodes
    définies dans la classe Fille.
Qu’est qu’un objet?




     prénom : Cérise
Qu’est qu’un objet?

Voici un autre
   objet
Qu’est qu’un objet?

Voici un autre
   objet


  Elle a un prénom : Audrey
Qu’est qu’un objet?

 Voici un autre
    objet
Il a un prénom : Jeanne
Qu’est qu’un objet?

Ce sont tous
des objets
 obtenu à partir
  d’un modèle
Qu’est qu’un objet ?

Actrice est un modèle (classe) ;
Qu’est qu’un objet ?

Actrice est un modèle (classe) ;
Tandis que Cérise et Audrey sont
des instances (objet).
Qu’est qu’un objet ?

Actrice est un modèle (classe) ;
Tandis que Cérise et Audrey sont
des instances (objet).
Ils ont été instanciés à partir d’un
modèle (classe).
Création d’un objet

    Nom de la classe nomObjet ;
         Actrice Audrey ;
Création d’un objet

    Nom de la classe nomObjet ;
           Actrice Audrey ;
 On vient de déclarer un objet de type
                 Actrice
        Qui s’appelle Audrey.
Création d’un objet

    Nom de la classe nomObjet ;
           Actrice Audrey ;
    Il va falloir construire l’objet.
Création d’un objet

    Nom de la classe nomObjet ;
           Actrice Audrey ;
    Il va falloir construire l’objet.
       Audrey = new Actrice();
Création d’un objet

    Nom de la classe nomObjet ;
            Actrice Audrey ;
     Il va falloir construire l’objet.
        Audrey = new Actrice();
   new permet de construire l’objet.
Création d’un objet

   Actrice Audrey = new Actrice();

  On peut aussi créer un objet en 1
                étape.
Création d’un objet
     La notion de constructeur
Un constructeur a pour objectif d’initialiser les
  attributs de la
classe.
Un constructeur a plusieurs caractéristiques :
Création d’un objet
     La notion de constructeur
Un constructeur a pour objectif d’initialiser les
  attributs de la
classe.
Un constructeur a plusieurs caractéristiques :

      Il se nomme de la même manière que la
  classe.
      Il ne détient pas de valeur de retour.
      Il n’est pas obligatoire d’avoir un constructeur.
Création d’un objet
     La notion de constructeur
Un constructeur a pour objectif d’initialiser les
  attributs de la
classe.
Un constructeur a plusieurs caractéristiques :

      Il se nomme de la même manière que la
  classe.
      Il ne détient pas de valeur de retour.
      Il n’est pas obligatoire d’avoir un constructeur.
Création d’un objet
     La notion de constructeur
Un constructeur a pour objectif d’initialiser les
  attributs de la
classe.
Un constructeur a plusieurs caractéristiques :

      Il se nomme de la même manière que la
  classe.
      Il ne détient pas de valeur de retour.
      Il n’est pas obligatoire d’avoir un constructeur.
La notion de constructeur
public class Actrice {

private int id ;
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;

public static int nb Actrice =0 ;



Actrice(int id, String nom,String prenom,String dateNaissance,String lieuNaissance)
{
this.id=id;
this.nom=nom;
this.prenom=prenom;
this.dateNaissance=dateNaissance;
this.lieudeNaissance=lieuNaissance;

this.nb Actrice ++;
}
    }
La notion de constructeur
public class Actrice {


private int id ;
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;
public static int nb Actrice =0 ;



Actrice(int id, String nom,String prenom,String dateNaissance,String lieuNaissance)
{
this.id=id;
this.nom=nom;
this.prenom=prenom;
this.dateNaissance=dateNaissance;
this.lieudeNaissance=lieuNaissance;
this.nb Actrice ++;
}
    }
La notion de constructeur
                  On dit que le premier argument reçu
public class Actrice {


private int id ;
private String nom;
                         va être placé dans id.
private String prenom;
private String dateNaissance;
private String lieudeNaissance;
public static int nb Actrice =0 ;



Actrice(int   id, String nom,String prenom,String dateNaissance,String lieuNaissance)
{
this.id=id;
this.nom=nom;
this.prenom=prenom;
this.dateNaissance=dateNaissance;
this.lieudeNaissance=lieuNaissance;
this.nb Actrice ++;
}
    }
La notion de constructeur
public class Actrice {


      Ainsi de suite, pour chaque attribut.
private int id ;
private String nom;
private String prenom;
private String dateNaissance;
private String lieudeNaissance;
public static int nb Actrice =0 ;



Actrice(int   id, String nom,String prenom,String dateNaissance,String lieuNaissance)
{
this.id=id;
this.nom=nom;
this.prenom=prenom;
this.dateNaissance=dateNaissance;
this.lieudeNaissance=lieuNaissance;
this.nb Actrice ++;
}
    }
La notion de constructeur
public class Actrice {


private int id ;     this donne le nom de la classe
private String nom;
private String prenom;
private String dateNaissance;
                                 Ici Fille.
                          C’est-à-dire, celui-ci .
private String lieudeNaissance;
public static int nb Actrice =0 ;



Actrice(int   id, String nom,String prenom,String dateNaissance,String lieuNaissance)
{

this.id=id;
this.nom=nom;
this.prenom=prenom;
this.dateNaissance=dateNaissance;
this.lieudeNaissance=lieuNaissance;
this.nb Actrice ++;
}
    }
La notion de constructeur




 Il est possible de mettre
     en place plusieurs
       constructeurs.
La notion de constructeur
     Il est possible de mettre
         en place plusieurs
           constructeurs.

    Si un constructeur est défini
          dans une classe,
Il faudra obligatoirement l’utiliser.
La notion de constructeur

     Il est possible de mettre
         en place plusieurs
           constructeurs.

    Si un constructeur est défini
          dans une classe,
Il faudra obligatoirement l’utiliser.
La notion de constructeur

     Il est possible de mettre
         en place plusieurs
           constructeurs.

    Si un constructeur est défini
          dans une classe,
Il faudra obligatoirement l’utiliser.

Actrice Jeanne = new Actrice() ;
La notion de constructeur

      Il est possible de mettre
          en place plusieurs
            constructeurs.
    Si un constructeur est défini
           dans une classe,
Il faudra obligatoirement l’utiliser.

 Actrice Jeanne = new Actrice () ;
LE COMPILATEUR VA REFUSER DE CREER UN OBJET
                TYPE Actrice
La notion de constructeur

 Actrice Jeanne = new Actrice () ;
LE COMPILATEUR VA REFUSER DE CREER UN OBJET
                 TYPE FILLE

  La classe Actrice a un constructeur.
L’objet
   Un objet a trois caractéristiques.
L’objet
   Un objet a trois caractéristiques.
L’objet
   Un objet a trois caractéristiques.


            Le comportement de l’objet
L’objet
   Un objet a trois caractéristiques.


            Le comportement de l’objet

              Quelles sont les méthodes
              que l’on peut lui appliquer?
L’objet
   Un objet a trois caractéristiques.


              Le comportement de l’objet

                 Quelles sont les méthodes
                 que l’on peut lui appliquer?
          Par exemple, un poisson peut-il marcher?
          Un avion peut-il acheter ?
L’objet
   Un objet a trois caractéristiques.


            L’état d’un objet

          Quel est la réaction de l’objet lorsqu’on lui applique
          Une méthode?
L’objet
   Un objet a trois caractéristiques.


            L’état d’un objet

          Dans un Système d’information, chaque commande
          est différencié par une référence unique.
L’objet
   Un objet a trois caractéristiques.


               L’état d’un objet




          Dans un Système d’information, chaque commande
          est différencié par une référence unique.
          Elle va avoir un état : En cours d’acheminement,
          envoyée , délivrée.
L’objet
   Un objet a trois caractéristiques.


            L’état d’un objet

          Si une commande est expédié, peut-on le modifier?
          C’est-à-dire, ajouter un article.
L’objet
      Chaque objet est unique.
     Chaque objet a une identité.
L’objet
      Chaque objet est unique.
L’objet
      Chaque objet est unique.
Même dans le cas de 2 jumeaux
L’objet
      Chaque objet est unique.
Même dans le cas de 2 jumeaux
L’objet
      Chaque objet est unique.
Même dans le cas de 2 jumeaux
Ils peuvent avoir le même prénom,
L’objet
      Chaque objet est unique.
Même dans le cas de 2 jumeaux


Ils peuvent avoir le même prénom,
Le même nom, la même adresse.
L’objet
      Chaque objet est unique.
Même dans le cas de 2 jumeaux
Ils peuvent avoir le même prénom,
Le même nom, la même adresse.
La même date de naissance,
Le même lieu de naissance.
L’objet
        Chaque objet est unique.
 Même dans le cas de 2 jumeaux




Chacun aura une empreinte digitale
Différente.
L’objet
        Chaque objet est unique.
 Même dans le cas de 2 jumeaux




Chacun aura une empreinte digitale
Différente.
L’objet
     Chaque objet est unique.
Les méthodes
Dans le langage JAVA, une méthode
 détient quatre points essentiels :
   Type de Retour NomMethode(type1 argument1,type2 argument, type3
 argument3)
 {
    Corps de la méthode
   }



                   Le nom de la méthode
                       Les arguments
                     La valeur de retour
                   Le corps de la méthode
Les méthodes
Dans le langage JAVA, une méthode
 détient quatre points essentiels :
   Type de Retour NomMethode(type1 argument1,type2 argument, type3
 argument3)
 {
    Corps de la méthode
   }



                   Le nom de la méthode
                       Les arguments
                     La valeur de retour
                   Le corps de la méthode
Les méthodes
Dans le langage JAVA, une méthode
 détient quatre points essentiels :
   Type de Retour NomMethode(type1 argument1,type2 argument, type3
 argument3)
 {
    Corps de la méthode
   }



                   Le nom de la méthode
                       Les arguments
                     La valeur de retour
                   Le corps de la méthode
Les méthodes
Dans le langage JAVA, une méthode
 détient quatre points essentiels :
   Type de Retour NomMethode(type1 argument1,type2 argument, type3
 argument3)
 {
    Corps de la méthode
   }



                   Le nom de la méthode
                       Les arguments
                     La valeur de retour
                   Le corps de la méthode
Les méthodes
Dans le langage JAVA, une méthode
 détient quatre points essentiels :
   Type de Retour NomMethode(type1 argument1,type2 argument, type3
 argument3)
 {
    Corps de la méthode
   }



                   Le nom de la méthode
                       Les arguments
                     La valeur de retour
                   Le corps de la méthode
Les méthodes
Les arguments : ce sont les arguments que l’on souhaite
   passer à la méthode. Elles sont obligatoirement séparés
   par une virgule.
Le nom de la méthode : C’est le nom que l’on attribue à la
   méthode. Pour l’appeler, il faudra utiliser ce nom.
La valeur de retour : Chaque méthode peut retourner une
   valeur. Il faudra la spécifier dans le corps de la méthode.
Si le type est void, il ne retournera rien.
Par contre, si on spécifie un type de retour, il faudra
   obligatoirement retourner une valeur. Dans le cas contraire,
   une erreur de compilation sera générée.
Les méthodes
Les arguments : ce sont les arguments que l’on souhaite passer
   à la méthode. Elles sont obligatoirement séparés par une
   virgule.
Le nom de la méthode : C’est le nom que l’on attribue à la
   méthode. Pour l’appeler, il faudra utiliser ce nom.
La valeur de retour : Chaque méthode peut retourner une
   valeur. Il faudra la spécifier dans le corps de la méthode.
Si le type est void, il ne retournera rien.
Par contre, si on spécifie un type de retour, il faudra
   obligatoirement retourner une valeur. Dans le cas contraire,
   une erreur de compilation sera générée.
Les méthodes
Les arguments : ce sont les arguments que l’on souhaite passer
  à la méthode. Elles sont obligatoirement séparés par une
  virgule.
Le nom de la méthode : C’est le nom que l’on attribue à la
  méthode. Pour l’appeler, il faudra utiliser ce nom.
La valeur de retour : Chaque méthode peut retourner une
  valeur. Il faudra la spécifier dans le corps de la méthode.
 Si le type est void, il ne retournera rien.
 Par contre, si on spécifie un type de retour, il faudra
  obligatoirement retourner une valeur. Dans le cas
  contraire, une erreur de compilation sera générée.
Les méthodes
          Getter et Setter

  Les accesseurs permettent de
 modifier ou récupérer les attributs
  de la classe. Pour des raisons de
  sécurité, les attributs doivent être
         déclarées private.
Les méthodes
            Getter et Setter

Les accesseurs permettent de modifier
 ou récupérer les attributs de la classe.
  Pour des raisons de sécurité, les
        attributs doivent être
         déclarées private.
Les méthodes
public class Actrice {



private String nom;



public void Setnom(String nom)
{
  this.nom=nom;
}



public String Getnom()
{
return this.nom;

}

}
Les méthodes
public class Actrice {



private String nom;          Voilà une variable d’instance.

public void Setnom(String nom)
{
  this.nom=nom;
}



public String Getnom()
{
return this.nom;

}

}
Les méthodes
public class Fille{

                             Voilà le setteur.
private String nom;
                             Cette méthode va me permettre
                             D’affecter un nom à mon fille.

public void Setnom(String nom)
{
  this.nom=nom;
}



public String Getnom()
{
return this.nom;

}

}
Les méthodes
public class Fille {

                                 Voilà le getteur
private String nom;              Cette méthode va me permettre
                                 De récupérer le nom de mon objet.

public void Setnom(String nom)
{
  this.nom=nom;
}



public String Getnom()
{
return this.nom;

}

}
L’encapsulation

    C’est un mécanisme
     fondamental de la
  Programmation Orientée
            objet.
L’encapsulation


    C’est un mécanisme
     fondamental de la
  Programmation Orientée
            objet.
L’encapsulation


 L’encapsulation consiste à
  protéger les informations
  contenues dans un objet.
L’encapsulation


 L’encapsulation consiste à
  protéger les informations
  contenues dans un objet.
L’encapsulation


 L’encapsulation consiste à
  protéger les informations
  contenues dans un objet.
L’encapsulation


 L’encapsulation consiste à
  protéger les informations
  contenues dans un objet.
L’encapsulation


Un utilisateur peut manipuler
  les données à l’aide des
           méthodes.
L’encapsulation


Un utilisateur peut manipuler
  les données à l’aide des
           méthodes.
L’encapsulation


Un utilisateur peut manipuler
  les données à l’aide des
           méthodes.
L’encapsulation


 Il existe 3 niveaux d’accès.
L’encapsulation


 Il existe 3 niveaux d’accès.
             Public
L’encapsulation


 Il existe 3 niveaux d’accès.
             Public,
             Privé,
L’encapsulation


 Il existe 3 niveaux d’accès.
             Public,
             Privé,
            Protégé
L’encapsulation


           Public
L’encapsulation


           Public
accessible par tout le monde
L’encapsulation


           Private
L’encapsulation


           Private
Uniquement manipulable par
     l’objet elle-même.
L’encapsulation


           Private
Uniquement manipulable par
     l’objet elle-même.
L’encapsulation


         Protégé
 manipulable par l’objet elle-
           même
L’encapsulation


         Protégé
 manipulable par l’objet elle-
           même
             Et
       Les enfants.
L’encapsulation


         Protégé
 manipulable par l’objet elle-
           même
             Et
       Les enfants.
L’encapsulation
L’encapsulation
Une Actrice : Elle s’appelle Laura
L’encapsulation
    Une fille : Elle s’appelle Laura
Demander
son nom
est publique
L’encapsulation
    Une fille : Elle s’appelle Laura
Demander                  Accessible par
son nom                   tout le monde
est publique
L’encapsulation
    Une fille : Elle s’appelle Laura
Demander                   Accessible par
son nom                    tout le monde
est publique


        Toute personne qui le
        souhaite
        peut lui demander son nom
L’encapsulation




Laura peut accepter
de s’embrasser
Avec un homme
dont elle est séduite.
L’encapsulation




Laura peut accepter
de s’embrasser
Avec un homme
dont elle est séduite.
L’encapsulation
Laura peut accepter de s’embrasser
Avec un homme dont
elle est séduite.
   S’embrasser
       Est
      Privée
L’encapsulation
Laura peut accepter
de s’embrasser
Avec un homme
dont elle est séduite.
    Si un garçon
        souhaite
  embrasser Laura,
    il faudra qu’il
   séduise Laura.
L’encapsulation
Laura peut accepter
de s’embrasser         Séduire est publique.

Avec un homme
dont elle est séduite.
 Si un garçon
     souhaite
   embrasser
      Laura
 Il faudra qu’il
séduise Laura.
L’encapsulation

            Séduire est publique.
            La méthode Séduire
            va appeler la méthode
            S’embrasser
            qui est privé.
L’encapsulation


        Que se passe t-il si un
           homme embrasse
      Laura sans l’avoir séduite ?
L’encapsulation
Que se passe t-il si un homme embrasse
      Laura sans l’avoir séduite ?
L’encapsulation
  Que se passe t-il si un
    homme embrasse
Laura sans l’avoir séduite ?




Il va prendre une gifle
L’encapsulation
      Que se passe t-il
  si un homme embrasse
Laura sans l’avoir séduite ?


 En effet, il y’a violation de
  la règle d’encapsulation.
L’encapsulation
       Que se passe t-il si
      un homme embrasse
   Laura sans l’avoir séduite ?


 En effet, il y’a violation de
  la règle d’encapsulation.
L’encapsulation
Laura a aussi des données
         protégés.
L’encapsulation
 Laura a aussi des données
          protégés.



Son argent en banque
L’encapsulation
                 Personne d’autre ne pourra
                 toucher à cette argent.
Il n’ y a que Laura
Et ses enfants qui
pourront l’utiliser.



Son argent en banque
L’encapsulation
  Personne d’autre ne pourra toucher à cette argen
          Laura a aussi des données
Il n’ y a que Laura
                    protégés.
Et ses enfants qui
Pourront l’utiliser.
       I



    Son argent en banque
L’héritage


 C’est un concept fondamental
  de la programmation orienté
             objet.
L’héritage


 C’est un concept fondamental
  de la programmation orienté
             objet.
L’héritage
Il offre la possibilité de réutiliser les
    composants logiciels existants.
L’héritage
Il offre la possibilité de réutiliser les
    composants logiciels existants.
 Une classe dérivé(=enfant) pourra
   utiliser les méthodes et attributs
       de la classe parent(=super
                 classe).
L’héritage
Il offre la possibilité de réutiliser les
    composants logiciels existants.
 Une classe dérivé(=enfant) pourra
   utiliser les méthodes et attributs
       de la classe parent(=super
      classe) et pourra ajouter ses
           propres propriétés.
L’héritage
Il offre la possibilité de réutiliser les
    composants logiciels existants.
 Une classe dérivé(=enfant) pourra
   utiliser les méthodes et attributs
       de la classe parent(=super
    classe) et pourra ajouter ses
          propres propriétés.
L’héritage

   Une classe enfant peut
    accéder uniquement
   au donnée publique et
          protégée.
L’héritage

   Une classe enfant peut
    accéder uniquement
   au donnée publique et
          protégée.
L’héritage
Ce qui offre la possibilité de ne pas
        avoir à répartir de 0.
L’héritage
L’héritage




Il n’y a pas d’héritage multiple
             en Java
L’héritage
Une personne a un nom, un prénom, un numéro de Sécurité
Sociale.

Un étudiant a un nom, un prénom, un numéro de Sécurité
Sociale,
et une note.

Un professeur a un nom, un prénom, un numéro de
Sécurité Sociale, et une matière.
L’héritage
Une personne a un nom, un prénom, un numéro de Sécurité
Sociale.

Un étudiant a un nom, un prénom, un numéro de Sécurité
Sociale,
et une note.

Un professeur a un nom, un prénom, un numéro de
Sécurité Sociale, et une matière.
  Quels sont les propriétés communes au 3 ?
L’héritage
Une personne a un nom, un prénom, un numéro de
Sécurité Sociale.

Un étudiant a un nom, un prénom, un numéro de Sécurité
Sociale, et une note.

Un professeur a un nom, un prénom, un numéro de
Sécurité Sociale, et une matière.

  Quels sont les propriétés communes au 3 ?
L’héritage
On peut centraliser le nom, le prénom, le numéro de
 Sécurité Sociale au sein d’une classe Personne.

         La classe Professeur et La classe
         Etudiant pourront les utiliser par le
                 biais de l’héritage.
L’héritage

   Un professeur est une personne.
    Un étudiant est une personne.
L’héritage

   Un professeur est une personne.
    Un étudiant est une personne.

   Il s’agit de la relation « est un »
L’héritage

   Un professeur est une personne.
    Un étudiant est une personne.

   Il s’agit de la relation « est un »
L’héritage
                               Sans héritage, on aurait

     Personne                            Etudiant                     Professeur

 #name : String                     -name : String                 -name : String
       #                            -prenom# String
                                              :                    -prenom# String
                                                                            :
 #prenom : String                   -numSS :String                 -numSS :String
 #numSS :String                     -note : int                    - Matiere :String

+getName():String                  +getName():String              +getName():String
            +
+setName(String n): String         +setName(String n): String     +setName(String n): String
+getprenom():String                            +
                                   +getprenom():String                        +
                                                                  +getprenom():String
+setprenom(String n): String       +setprenom(String n): String   +setprenom(String n): String
+setNum(int n) : void              +setNum(int n) : void          +setNum(int n) : void
+getNum():int                      +getNum():int                  +getNum():int
+getPersonne(): void               +getNote):int                  setMatiere(String n) : void
+setPersonne(String f,String       +setNote(int n):void           +getMatiere):String
n, int s)                          +getEtudiant(): void           +getProfesseur(): void
                                   +setEtudiant(String f,String   +setProfesseur(String
                                   n, int s,int n)                f,String n, String m)
L’héritage
                           Sans héritage, on aurait

       Personne                        Etudiant                     Professeur

   #name : String                 -name : String                 -name : String

Quels sont les propriétés et
         #
   #prenom : String
   #numSS :String
                                  -prenom# String
                                            :
                                  -numSS :String
                                  -note : int
                                                                 -prenom# String
                                                                          :
                                                                 -numSS :String
                                                                 - Matiere :String


méthodes identiques?
  +getName():String
              +
  +setName(String n): String
  +getprenom():String
  +setprenom(String n): String
                                 +getName():String
                                 +setName(String n): String
                                             +
                                 +getprenom():String
                                 +setprenom(String n): String
                                                                +getName():String
                                                                +setName(String n): String
                                                                            +
                                                                +getprenom():String
                                                                +setprenom(String n): String
  +setNum(int n) : void          +setNum(int n) : void          +setNum(int n) : void
  +getNum():int                  +getNum():int                  +getNum():int
  +getPersonne(): void           +getNote):int                  setMatiere(String n) : void
  +setPersonne(String f,String   +setNote(int n):void           +getMatiere):String
  n, int s)                      +getEtudiant(): void           +getProfesseur(): void
                                 +setEtudiant(String f,String   +setProfesseur(String
                                 n, int s,int n)                f,String n, String m)
L’héritage
                               Sans héritage, on aurait

     Personne                            Etudiant                     Professeur

 #name : String                     -name : String                 -name : String
       #                            -prenom# String
                                              :                    -prenom# String
                                                                            :
 #prenom : String                   -numSS :String                 -numSS :String
 #numSS :String                     -note : int                    - Matiere :String

+getName():String                  +getName():String              +getName():String
            +
+setName(String n): String         +setName(String n): String     +setName(String n): String
+getprenom():String                            +
                                   +getprenom():String                        +
                                                                  +getprenom():String
+setprenom(String n): String       +setprenom(String n): String   +setprenom(String n): String
+setNum(int n) : void              +setNum(int n) : void          +setNum(int n) : void
+getNum():int                      +getNum():int                  +getNum():int
+getPersonne(): void               +getNote):int                  setMatiere(String n) : void
+setPersonne(String f,String       +setNote(int n):void           +getMatiere):String
n, int s)                          +getEtudiant(): void           +getProfesseur(): void
                                   +setEtudiant(String f,String   +setProfesseur(String
                                   n, int s,int n)                f,String n, String m)
L’héritage
     Avec héritage, on aurait
L’héritage
                  Avec héritage, on aurait

N’est-il pas plus simple
D’implémenter ce modèle?
L’héritage
public class Personne {
}


public class Professeur extends Personne {
}
public class Etudiant extends Personne {
}
L’héritage
public class Personne {
}


public class Professeur extends Personne {
}

public class Etudiant extends Personne {
}
L’héritage
public class Personne {
}


public class Professeur extends Personne {
}

public class Etudiant extends Personne {
}


Le mot clé extends indique au compilateur
que la classe Etudiant hérite
de la classe Personne.
L’héritage
public class Personne {
}


public class Professeur extends Personne {
}

public class Etudiant extends Personne {
}


Le mot clé extends indique au compilateur
que la classe Etudiant hérite
de la classe Personne.
Le polymorphisme

  Le polymorphisme est un concept
   fondamental de la programmation
           orientée objet.
Le polymorphisme

  Le polymorphisme est un concept
   fondamental de la programmation
             orientée objet.
 Dans la langue grec, il signifie « peut
      prendre plusieurs formes »
Le polymorphisme

  Le polymorphisme est un concept
   fondamental de la programmation
             orientée objet.
 Dans la langue grec, il signifie « peut
     prendre plusieurs formes »
Le polymorphisme

Le polymorphisme offre la possibilité de
  définir plusieurs méthodes portant le
 même nom mais possédant différents
                paramètres.
Le polymorphisme

Le polymorphisme offre la possibilité de
  définir plusieurs méthodes portant le
 même nom mais possédant différents
                paramètres.
Le polymorphisme

Le polymorphisme offre la possibilité de
  définir plusieurs méthodes portant le
 même nom mais possédant différents
                paramètres.
Le polymorphisme

Le polymorphisme offre la possibilité de
  définir plusieurs méthodes portant le
 même nom mais possédant différents
                paramètres.
Le polymorphisme

Le polymorphisme offre la possibilité de
  définir plusieurs méthodes portant le
 même nom mais possédant différents
                paramètres.
    Le choix de la méthode se fera
    automatiquement en fonction des
            paramètres reçus.
Le polymorphisme

Le polymorphisme offre la possibilité de
  définir plusieurs méthodes portant le
 même nom mais possédant différents
                paramètres.
   Le choix de la méthode se fera
  automatiquement en fonction des
            paramètres reçus.
Le polymorphisme
Prenons l’exemple d’un chien qu’une personne essaye d’approcher.


Chaque chien a une manière différente pour accueillir les inconnus.

Et cela dépend bien évidemment de la manière dont vous l’approchez.
Le polymorphisme
Si vous lui jetez une pierre.

Sa méthode accueillir va recevoir en argument une pierre.

Voilà comment il va réagir.
Le polymorphisme
Si vous lui jetez une pierre.

Sa méthode accueillir va recevoir en argument une pierre.

Voilà comment il va réagir.
Le polymorphisme
Si vous lui donner à manger.

Sa méthode accueillir va recevoir en argument de la nourriture.

Voilà comment il va réagir.
Le polymorphisme
Si vous lui donner à manger.

Sa méthode accueillir va recevoir en argument de la nourriture.

Voilà comment il va réagir.
Le polymorphisme



Nous venons de voir que le même objet Chien pouvait
avoir
des comportements différents. La même méthode
accueillir va
avoir un comportement différent en fonction des
paramètres reçus.
Le polymorphisme



Nous venons de voir que le même objet Chien pouvait
avoir
des comportements différents. La même méthode
accueillir va
avoir un comportement différent en fonction des
paramètres reçus.
Classe Abstraite

  Une classe abstraite est une classe
                  dont
 l’implémentation n’est pas complète.
Classe Abstraite

   Une classe abstraite est une classe
                    dont
l’implémentation n’est pas complète.
    Elle va servir de modèle pour les
             classes enfants.
Classe Abstraite

  Une classe abstraite est une classe
                    dont
 l’implémentation n’est pas complète.
    Elle va servir de modèle pour les
             classes enfants.
Classe Abstraite

  Une classe abstraite est une classe
                    dont
 l’implémentation n’est pas complète.
    Elle va servir de modèle pour les
             classes enfants.
    La classe abstraite va définir des
       méthodes en fournissant leur
                 signature.
Classe Abstraite

  Une classe abstraite est une classe
                    dont
 l’implémentation n’est pas complète.
    Elle va servir de modèle pour les
             classes enfants.
    La classe abstraite va définir des
       méthodes en fournissant leur
                 signature.
Classe Abstraite

Le type de retour
Classe Abstraite

Le type de retour
Le nom
Classe Abstraite

Le type de retour
Le nom
Le type d’argument
Classe Abstraite

Le type de retour
Le nom
Le type d’argument

C’est une assurance pour la classe de base
les classes enfants respecteront bien les
Spécifications.
Classe Abstraite

Le type de retour
Le nom
Le type d’argument

C’est une assurance pour la classe
de base que
les classes enfants respecteront bien les
Spécifications définie
Classe abstraite


Une classe est dite abstraite si et
 seulement si elle détient une ou
plusieurs méthodes abstraites.
Classe abstraite

 Il n’est pas possible d’instancier
         une classe abstraite.
Classe abstraite

 Il n’est pas possible d’instancier
         une classe abstraite.
Classe abstraite
      Par exemple, un animal domestique.
Classe abstraite
                Par exemple, un animal domestique.



On sait qu’il aura obligatoirement
Une méthode parler.
Tous les animaux domestiques parlent
mais chacune a sa manière.
Classe abstraite
              Par exemple, un animal domestique.




Les oiseaux vont dire :
     Cik Cik Cik
Classe abstraite
              Par exemple, un animal domestique.




Le chat va dire :
 Miaou Miaou
Classe abstraite
              Par exemple, un animal domestique.




Le chien va dire :
 Hav Hav Hav
Classe abstraite

Si l’on définie une classe abstraite Animal
         Domestique, on va y placer
      La méthode abstraite « parler » .
       Ainsi chaque classe enfant va
     implémenter la méthode parler à sa
                   manière.
Classe abstraite
              Par exemple, un animal domestique.




Ainsi, la classe Chien va dire :
        Hav Hav Hav
Classe abstraite
              Par exemple, un animal domestique.




Ainsi, la classe Oiseau va dire :
          Cik Cik Cik
Les classes Interfaces

 Nous avons vu auparavant que
 l’héritage multiple n’existe pas en
                Java.
  Nous avons vu que les classes
   abstraites ne définissent que la
      signature des méthodes.
Les classes Interfaces

Nous avons vu auparavant que
l’héritage multiple n’existe pas en
               Java.
 Nous avons vu que les classes
 abstraites ne définissent que la
    signature des méthodes.
Les classes Interfaces

 Une classe interface va aussi définir
    simplement les signatures des
  méthodes pour les classes enfants.
Les classes Interfaces

 Une classe interface va aussi définir
    simplement les signatures des
  méthodes pour les classes enfants.
Les classes Interfaces

 Une classe interface va aussi définir
    simplement les signatures des
  méthodes pour les classes enfants.
  Mais celui-ci est plus riche qu’une
           classe abstraite.
       Savez vous pourquoi?
Les classes Interfaces

 Une classe interface va aussi définir
    simplement les signatures des
  méthodes pour les classes enfants.
  Mais celui-ci est plus riche qu’une
           classe abstraite.
       Savez vous pourquoi?
Les classes Interfaces

 Il est possible d’hériter d’une seule
      classe car l’héritage multiple
          n’existe pas en Java.
Les classes Interfaces

 Il est possible d’hériter d’une seule
      classe car l’héritage multiple
          n’existe pas en Java.
 Mais une classe peut implémenter
      plusieurs classes interfaces.
Les classes Interfaces

 Il est possible d’hériter d’une seule
      classe car l’héritage multiple
          n’existe pas en Java.
 Mais une classe peut implémenter
      plusieurs classes interfaces.
Les classes Interfaces

 Il est possible d’hériter d’une seule
      classe car l’héritage multiple
          n’existe pas en Java.
 Mais une classe peut implémenter
      plusieurs classes interfaces.
 Une classe peut hériter une classe
 C1 et implémenter une ou plusieurs
    classes interfaces I1,I2,I3,I4,…….
Les classes Interfaces

 Il est possible d’hériter d’une seule
      classe car l’héritage multiple
          n’existe pas en Java.
 Mais une classe peut implémenter
      plusieurs classes interfaces.
 Une classe peut hériter une classe
 C1 et implémenter une ou plusieurs
    classes interfaces I1,I2,I3,I4,…….
Les classes Interfaces

 Il est possible d’hériter d’une seule
      classe car l’héritage multiple
          n’existe pas en Java.
 Mais une classe peut implémenter
      plusieurs classes interfaces.
 Une classe peut hériter une classe
 C1 et implémenter une ou plusieurs
    classes interfaces I1,I2,I3,I4,…….
Les classes Interfaces
                 Mickael Jackson
Est un danseur                     Est un chanteur
Les classes Interfaces
       Mickael Jackson
                         Un chanteur n’est pas
                         Un danseur
Les classes Interfaces
       Mickael Jackson
                         Un chanteur n’est pas
                         Un danseur

                         Un danseur n’est pas
                         Un chanteur
Les classes Interfaces
          Comment faire ?
Une classe ne peut hériter d’une seule
               classe.

  Voilà, les classes interfaces vont
               nous aider.
Les classes Interfaces
   On va faire appel à deux classes
               interfaces.
               Danseur
                   Et
               Chanteur
Les classes Interfaces
   On va faire appel à deux classes
               interfaces.
               Danseur
                   Et
               Chanteur

Mickael Jackson va implémenter ces 2
              interfaces.

Mais conteúdo relacionado

Destaque

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Destaque (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Programmation orientée objet et java

  • 1. Programmation Orientée Objet et Java Axel KAMALAK www.axelkamalak.eu
  • 2. La programmation orientée objet ? C’est la représentation du monde réel
  • 3. La programmation orientée objet ? C’est la représentation du monde réel C’est la capacité de regrouper des paramètres dans un ensemble.
  • 4. La programmation orientée objet ? C’est la représentation du monde réel C’est la capacité de regrouper des paramètres dans un ensemble. Un ensemble de principe clés qui permettent la mise en place d’un logiciel.
  • 5. Qu’est qu’une classe ? C’est un modèle de quelque chose d’abstrait.
  • 6. Qu’est qu’une classe ? C’est un modèle de quelque chose d’abstrait. C’est la définition qui permet de créer des objets.
  • 8. Qu’est qu’une classe ? Actrice Elle a des attributs
  • 9. Qu’est qu’une classe ? Actrice Un prénom Un nom Une date de naissance Une adresse Un lieu de naissance Elle a des attributs
  • 10. Qu’est qu’une classe ? Un prénom Un nom Une date de naissance Une adresse Un lieu de naissance Elle a des attributs et des méthodes
  • 11. Qu’est qu’une classe ? Un prénom Manger Un nom Boire Une date de naissance Parler Une adresse Dormir Un lieu de naissance Rougir Elle a des attributs et des méthodes
  • 12. Qu’est qu’une classe ? Un prénom Manger Un nom Boire Une date de naissance Parler Une adresse Dormir Un lieu de naissance Rougir Elle a des attributs et des méthodes
  • 13. Qu’est qu’une classe ? Un prénom Manger Un nom Boire Une date de naissance Parler Une adresse Dormir Un lieu de naissance Rougir Ce sont les propriétés Elle a des attributs et des méthodes
  • 14. Qu’est qu’une classe ? Un prénom Manger Un nom Boire Une date de naissance Parler Une adresse Dormir Un lieu de naissance Rougir Elle a des attributs et des méthodes
  • 15. Qu’est qu’une classe ? Un prénom Manger Un nom Boire Une date de naissance Parler Une adresse Dormir Un lieu de naissance Rougir Ce sont les actions qu’il peut réaliser Elle a des attributs et des méthodes
  • 16. Qu’est qu’une classe ? public class Fille { private int id ; private String nom; private String prenom; private String dateNaissance; private String lieudeNaissance; public static int nbFille =0 ; } On donne le nom de la classe
  • 17. Qu’est qu’une classe ? public class Fille { private int id ; private String nom; private String prenom; private String dateNaissance; private String lieudeNaissance; public static int nbFille =0 ; } Ce sont les attributs.
  • 18. Qu’est qu’une classe ? public class Fille{ private int id ; private String nom; private String prenom; private String dateNaissance; private String lieudeNaissance; public static int nbFille =0 ; } On les appelles variables d’instance.
  • 19. Qu’est qu’une classe ? public class Fille { private int id ; On les appelles variables private String nom; private String prenom; d’instance. private String dateNaissance; private String lieudeNaissance; public static int nbFille =0 ; } Elles sont communes à toutes les instances.
  • 20. Qu’est qu’une classe ? public class Fille { private int id ; On les appelles variables private String nom; private String prenom; d’instance. private String dateNaissance; private String lieudeNaissance; public static int nbFille =0 ; } Elles sont communes à toutes les instances. Elles sont accessible uniquement par le biais d’un objet.
  • 21. Qu’est qu’une classe ? public class Fille{ private int id ; Les variables de classe private String nom; private String prenom; private String dateNaissance; private String lieudeNaissance; public static int nbFille =0 ; }
  • 22. Qu’est qu’une classe ? public class Fille { private int id ; Les variables de classe private String nom; private String prenom; private String dateNaissance; private String lieudeNaissance; public static int nbFille =0 ; } Une variable de classe est une variable qui est commune à toutes Les instances de cette classe. Une variable de ce type peut être accessible sans avoir à passer par une instances de la classe.
  • 23. Qu’est qu’un objet? Un objet est l’instanciation d’une classe.
  • 24. Qu’est qu’une classe ? public class Actrice{ private int id ; Les variables de classe private String nom; private String prenom; private String dateNaissance; private String lieudeNaissance; public static int nbFille =0 ; } Une variable de classe est une variable qui est commune à toutes Les instances de cette classe. Une variable de ce type peut être accessible sans avoir à passer par une instances de la classe.
  • 25. Qu’est qu’une classe ? public class Actrice { private int id ; Les variables de classe private String nom; private String prenom; private String dateNaissance; private String lieudeNaissance; public static int nbFille =0 ; } Une variable de classe est une variable qui est commune à toutes Les instances de cette classe. Une variable de ce type peut être accessible sans avoir à passer par une instances de la classe.
  • 26. Qu’est qu’un objet? Un objet est l’instanciation d’une classe.
  • 29. Qu’est qu’un objet? Voici un objet instancié à partir de la classe Actrice.
  • 30. Qu’est qu’un objet? Voici un objet instancié à partir de la classe Actrice. Il dispose de toutes les propriétés et méthodes définies dans la classe Fille.
  • 31. Qu’est qu’un objet? Voici un objet instancié à partir de la classe Actrice. Il dispose de toutes les propriétés et méthodes définies dans la classe Fille.
  • 32. Qu’est qu’un objet? prénom : Cérise
  • 34. Qu’est qu’un objet? Voici un autre objet Elle a un prénom : Audrey
  • 35. Qu’est qu’un objet? Voici un autre objet Il a un prénom : Jeanne
  • 36. Qu’est qu’un objet? Ce sont tous des objets obtenu à partir d’un modèle
  • 37. Qu’est qu’un objet ? Actrice est un modèle (classe) ;
  • 38. Qu’est qu’un objet ? Actrice est un modèle (classe) ; Tandis que Cérise et Audrey sont des instances (objet).
  • 39. Qu’est qu’un objet ? Actrice est un modèle (classe) ; Tandis que Cérise et Audrey sont des instances (objet). Ils ont été instanciés à partir d’un modèle (classe).
  • 40. Création d’un objet Nom de la classe nomObjet ; Actrice Audrey ;
  • 41. Création d’un objet Nom de la classe nomObjet ; Actrice Audrey ; On vient de déclarer un objet de type Actrice Qui s’appelle Audrey.
  • 42. Création d’un objet Nom de la classe nomObjet ; Actrice Audrey ; Il va falloir construire l’objet.
  • 43. Création d’un objet Nom de la classe nomObjet ; Actrice Audrey ; Il va falloir construire l’objet. Audrey = new Actrice();
  • 44. Création d’un objet Nom de la classe nomObjet ; Actrice Audrey ; Il va falloir construire l’objet. Audrey = new Actrice(); new permet de construire l’objet.
  • 45. Création d’un objet Actrice Audrey = new Actrice(); On peut aussi créer un objet en 1 étape.
  • 46. Création d’un objet La notion de constructeur Un constructeur a pour objectif d’initialiser les attributs de la classe. Un constructeur a plusieurs caractéristiques :
  • 47. Création d’un objet La notion de constructeur Un constructeur a pour objectif d’initialiser les attributs de la classe. Un constructeur a plusieurs caractéristiques : Il se nomme de la même manière que la classe. Il ne détient pas de valeur de retour. Il n’est pas obligatoire d’avoir un constructeur.
  • 48. Création d’un objet La notion de constructeur Un constructeur a pour objectif d’initialiser les attributs de la classe. Un constructeur a plusieurs caractéristiques : Il se nomme de la même manière que la classe. Il ne détient pas de valeur de retour. Il n’est pas obligatoire d’avoir un constructeur.
  • 49. Création d’un objet La notion de constructeur Un constructeur a pour objectif d’initialiser les attributs de la classe. Un constructeur a plusieurs caractéristiques : Il se nomme de la même manière que la classe. Il ne détient pas de valeur de retour. Il n’est pas obligatoire d’avoir un constructeur.
  • 50. La notion de constructeur public class Actrice { private int id ; private String nom; private String prenom; private String dateNaissance; private String lieudeNaissance; public static int nb Actrice =0 ; Actrice(int id, String nom,String prenom,String dateNaissance,String lieuNaissance) { this.id=id; this.nom=nom; this.prenom=prenom; this.dateNaissance=dateNaissance; this.lieudeNaissance=lieuNaissance; this.nb Actrice ++; } }
  • 51. La notion de constructeur public class Actrice { private int id ; private String nom; private String prenom; private String dateNaissance; private String lieudeNaissance; public static int nb Actrice =0 ; Actrice(int id, String nom,String prenom,String dateNaissance,String lieuNaissance) { this.id=id; this.nom=nom; this.prenom=prenom; this.dateNaissance=dateNaissance; this.lieudeNaissance=lieuNaissance; this.nb Actrice ++; } }
  • 52. La notion de constructeur On dit que le premier argument reçu public class Actrice { private int id ; private String nom; va être placé dans id. private String prenom; private String dateNaissance; private String lieudeNaissance; public static int nb Actrice =0 ; Actrice(int id, String nom,String prenom,String dateNaissance,String lieuNaissance) { this.id=id; this.nom=nom; this.prenom=prenom; this.dateNaissance=dateNaissance; this.lieudeNaissance=lieuNaissance; this.nb Actrice ++; } }
  • 53. La notion de constructeur public class Actrice { Ainsi de suite, pour chaque attribut. private int id ; private String nom; private String prenom; private String dateNaissance; private String lieudeNaissance; public static int nb Actrice =0 ; Actrice(int id, String nom,String prenom,String dateNaissance,String lieuNaissance) { this.id=id; this.nom=nom; this.prenom=prenom; this.dateNaissance=dateNaissance; this.lieudeNaissance=lieuNaissance; this.nb Actrice ++; } }
  • 54. La notion de constructeur public class Actrice { private int id ; this donne le nom de la classe private String nom; private String prenom; private String dateNaissance; Ici Fille. C’est-à-dire, celui-ci . private String lieudeNaissance; public static int nb Actrice =0 ; Actrice(int id, String nom,String prenom,String dateNaissance,String lieuNaissance) { this.id=id; this.nom=nom; this.prenom=prenom; this.dateNaissance=dateNaissance; this.lieudeNaissance=lieuNaissance; this.nb Actrice ++; } }
  • 55. La notion de constructeur Il est possible de mettre en place plusieurs constructeurs.
  • 56. La notion de constructeur Il est possible de mettre en place plusieurs constructeurs. Si un constructeur est défini dans une classe, Il faudra obligatoirement l’utiliser.
  • 57. La notion de constructeur Il est possible de mettre en place plusieurs constructeurs. Si un constructeur est défini dans une classe, Il faudra obligatoirement l’utiliser.
  • 58. La notion de constructeur Il est possible de mettre en place plusieurs constructeurs. Si un constructeur est défini dans une classe, Il faudra obligatoirement l’utiliser. Actrice Jeanne = new Actrice() ;
  • 59. La notion de constructeur Il est possible de mettre en place plusieurs constructeurs. Si un constructeur est défini dans une classe, Il faudra obligatoirement l’utiliser. Actrice Jeanne = new Actrice () ; LE COMPILATEUR VA REFUSER DE CREER UN OBJET TYPE Actrice
  • 60. La notion de constructeur Actrice Jeanne = new Actrice () ; LE COMPILATEUR VA REFUSER DE CREER UN OBJET TYPE FILLE La classe Actrice a un constructeur.
  • 61. L’objet Un objet a trois caractéristiques.
  • 62. L’objet Un objet a trois caractéristiques.
  • 63. L’objet Un objet a trois caractéristiques. Le comportement de l’objet
  • 64. L’objet Un objet a trois caractéristiques. Le comportement de l’objet Quelles sont les méthodes que l’on peut lui appliquer?
  • 65. L’objet Un objet a trois caractéristiques. Le comportement de l’objet Quelles sont les méthodes que l’on peut lui appliquer? Par exemple, un poisson peut-il marcher? Un avion peut-il acheter ?
  • 66. L’objet Un objet a trois caractéristiques. L’état d’un objet Quel est la réaction de l’objet lorsqu’on lui applique Une méthode?
  • 67. L’objet Un objet a trois caractéristiques. L’état d’un objet Dans un Système d’information, chaque commande est différencié par une référence unique.
  • 68. L’objet Un objet a trois caractéristiques. L’état d’un objet Dans un Système d’information, chaque commande est différencié par une référence unique. Elle va avoir un état : En cours d’acheminement, envoyée , délivrée.
  • 69. L’objet Un objet a trois caractéristiques. L’état d’un objet Si une commande est expédié, peut-on le modifier? C’est-à-dire, ajouter un article.
  • 70. L’objet Chaque objet est unique. Chaque objet a une identité.
  • 71. L’objet Chaque objet est unique.
  • 72. L’objet Chaque objet est unique. Même dans le cas de 2 jumeaux
  • 73. L’objet Chaque objet est unique. Même dans le cas de 2 jumeaux
  • 74. L’objet Chaque objet est unique. Même dans le cas de 2 jumeaux Ils peuvent avoir le même prénom,
  • 75. L’objet Chaque objet est unique. Même dans le cas de 2 jumeaux Ils peuvent avoir le même prénom, Le même nom, la même adresse.
  • 76. L’objet Chaque objet est unique. Même dans le cas de 2 jumeaux Ils peuvent avoir le même prénom, Le même nom, la même adresse. La même date de naissance, Le même lieu de naissance.
  • 77. L’objet Chaque objet est unique. Même dans le cas de 2 jumeaux Chacun aura une empreinte digitale Différente.
  • 78. L’objet Chaque objet est unique. Même dans le cas de 2 jumeaux Chacun aura une empreinte digitale Différente.
  • 79. L’objet Chaque objet est unique.
  • 80. Les méthodes Dans le langage JAVA, une méthode détient quatre points essentiels : Type de Retour NomMethode(type1 argument1,type2 argument, type3 argument3) { Corps de la méthode }  Le nom de la méthode  Les arguments  La valeur de retour  Le corps de la méthode
  • 81. Les méthodes Dans le langage JAVA, une méthode détient quatre points essentiels : Type de Retour NomMethode(type1 argument1,type2 argument, type3 argument3) { Corps de la méthode }  Le nom de la méthode  Les arguments  La valeur de retour  Le corps de la méthode
  • 82. Les méthodes Dans le langage JAVA, une méthode détient quatre points essentiels : Type de Retour NomMethode(type1 argument1,type2 argument, type3 argument3) { Corps de la méthode }  Le nom de la méthode  Les arguments  La valeur de retour  Le corps de la méthode
  • 83. Les méthodes Dans le langage JAVA, une méthode détient quatre points essentiels : Type de Retour NomMethode(type1 argument1,type2 argument, type3 argument3) { Corps de la méthode }  Le nom de la méthode  Les arguments  La valeur de retour  Le corps de la méthode
  • 84. Les méthodes Dans le langage JAVA, une méthode détient quatre points essentiels : Type de Retour NomMethode(type1 argument1,type2 argument, type3 argument3) { Corps de la méthode }  Le nom de la méthode  Les arguments  La valeur de retour  Le corps de la méthode
  • 85. Les méthodes Les arguments : ce sont les arguments que l’on souhaite passer à la méthode. Elles sont obligatoirement séparés par une virgule. Le nom de la méthode : C’est le nom que l’on attribue à la méthode. Pour l’appeler, il faudra utiliser ce nom. La valeur de retour : Chaque méthode peut retourner une valeur. Il faudra la spécifier dans le corps de la méthode. Si le type est void, il ne retournera rien. Par contre, si on spécifie un type de retour, il faudra obligatoirement retourner une valeur. Dans le cas contraire, une erreur de compilation sera générée.
  • 86. Les méthodes Les arguments : ce sont les arguments que l’on souhaite passer à la méthode. Elles sont obligatoirement séparés par une virgule. Le nom de la méthode : C’est le nom que l’on attribue à la méthode. Pour l’appeler, il faudra utiliser ce nom. La valeur de retour : Chaque méthode peut retourner une valeur. Il faudra la spécifier dans le corps de la méthode. Si le type est void, il ne retournera rien. Par contre, si on spécifie un type de retour, il faudra obligatoirement retourner une valeur. Dans le cas contraire, une erreur de compilation sera générée.
  • 87. Les méthodes Les arguments : ce sont les arguments que l’on souhaite passer à la méthode. Elles sont obligatoirement séparés par une virgule. Le nom de la méthode : C’est le nom que l’on attribue à la méthode. Pour l’appeler, il faudra utiliser ce nom. La valeur de retour : Chaque méthode peut retourner une valeur. Il faudra la spécifier dans le corps de la méthode.  Si le type est void, il ne retournera rien.  Par contre, si on spécifie un type de retour, il faudra obligatoirement retourner une valeur. Dans le cas contraire, une erreur de compilation sera générée.
  • 88. Les méthodes Getter et Setter Les accesseurs permettent de modifier ou récupérer les attributs de la classe. Pour des raisons de sécurité, les attributs doivent être déclarées private.
  • 89. Les méthodes Getter et Setter Les accesseurs permettent de modifier ou récupérer les attributs de la classe. Pour des raisons de sécurité, les attributs doivent être déclarées private.
  • 90. Les méthodes public class Actrice { private String nom; public void Setnom(String nom) { this.nom=nom; } public String Getnom() { return this.nom; } }
  • 91. Les méthodes public class Actrice { private String nom; Voilà une variable d’instance. public void Setnom(String nom) { this.nom=nom; } public String Getnom() { return this.nom; } }
  • 92. Les méthodes public class Fille{ Voilà le setteur. private String nom; Cette méthode va me permettre D’affecter un nom à mon fille. public void Setnom(String nom) { this.nom=nom; } public String Getnom() { return this.nom; } }
  • 93. Les méthodes public class Fille { Voilà le getteur private String nom; Cette méthode va me permettre De récupérer le nom de mon objet. public void Setnom(String nom) { this.nom=nom; } public String Getnom() { return this.nom; } }
  • 94. L’encapsulation C’est un mécanisme fondamental de la Programmation Orientée objet.
  • 95. L’encapsulation C’est un mécanisme fondamental de la Programmation Orientée objet.
  • 96. L’encapsulation L’encapsulation consiste à protéger les informations contenues dans un objet.
  • 97. L’encapsulation L’encapsulation consiste à protéger les informations contenues dans un objet.
  • 98. L’encapsulation L’encapsulation consiste à protéger les informations contenues dans un objet.
  • 99. L’encapsulation L’encapsulation consiste à protéger les informations contenues dans un objet.
  • 100. L’encapsulation Un utilisateur peut manipuler les données à l’aide des méthodes.
  • 101. L’encapsulation Un utilisateur peut manipuler les données à l’aide des méthodes.
  • 102. L’encapsulation Un utilisateur peut manipuler les données à l’aide des méthodes.
  • 103. L’encapsulation Il existe 3 niveaux d’accès.
  • 104. L’encapsulation Il existe 3 niveaux d’accès. Public
  • 105. L’encapsulation Il existe 3 niveaux d’accès. Public, Privé,
  • 106. L’encapsulation Il existe 3 niveaux d’accès. Public, Privé, Protégé
  • 107. L’encapsulation Public
  • 108. L’encapsulation Public accessible par tout le monde
  • 109. L’encapsulation Private
  • 110. L’encapsulation Private Uniquement manipulable par l’objet elle-même.
  • 111. L’encapsulation Private Uniquement manipulable par l’objet elle-même.
  • 112. L’encapsulation Protégé manipulable par l’objet elle- même
  • 113. L’encapsulation Protégé manipulable par l’objet elle- même Et Les enfants.
  • 114. L’encapsulation Protégé manipulable par l’objet elle- même Et Les enfants.
  • 116. L’encapsulation Une Actrice : Elle s’appelle Laura
  • 117. L’encapsulation Une fille : Elle s’appelle Laura Demander son nom est publique
  • 118. L’encapsulation Une fille : Elle s’appelle Laura Demander Accessible par son nom tout le monde est publique
  • 119. L’encapsulation Une fille : Elle s’appelle Laura Demander Accessible par son nom tout le monde est publique Toute personne qui le souhaite peut lui demander son nom
  • 120. L’encapsulation Laura peut accepter de s’embrasser Avec un homme dont elle est séduite.
  • 121. L’encapsulation Laura peut accepter de s’embrasser Avec un homme dont elle est séduite.
  • 122. L’encapsulation Laura peut accepter de s’embrasser Avec un homme dont elle est séduite. S’embrasser Est Privée
  • 123. L’encapsulation Laura peut accepter de s’embrasser Avec un homme dont elle est séduite. Si un garçon souhaite embrasser Laura, il faudra qu’il séduise Laura.
  • 124. L’encapsulation Laura peut accepter de s’embrasser Séduire est publique. Avec un homme dont elle est séduite. Si un garçon souhaite embrasser Laura Il faudra qu’il séduise Laura.
  • 125. L’encapsulation Séduire est publique. La méthode Séduire va appeler la méthode S’embrasser qui est privé.
  • 126. L’encapsulation Que se passe t-il si un homme embrasse Laura sans l’avoir séduite ?
  • 127. L’encapsulation Que se passe t-il si un homme embrasse Laura sans l’avoir séduite ?
  • 128. L’encapsulation Que se passe t-il si un homme embrasse Laura sans l’avoir séduite ? Il va prendre une gifle
  • 129. L’encapsulation Que se passe t-il si un homme embrasse Laura sans l’avoir séduite ? En effet, il y’a violation de la règle d’encapsulation.
  • 130. L’encapsulation Que se passe t-il si un homme embrasse Laura sans l’avoir séduite ? En effet, il y’a violation de la règle d’encapsulation.
  • 131. L’encapsulation Laura a aussi des données protégés.
  • 132. L’encapsulation Laura a aussi des données protégés. Son argent en banque
  • 133. L’encapsulation Personne d’autre ne pourra toucher à cette argent. Il n’ y a que Laura Et ses enfants qui pourront l’utiliser. Son argent en banque
  • 134. L’encapsulation Personne d’autre ne pourra toucher à cette argen Laura a aussi des données Il n’ y a que Laura protégés. Et ses enfants qui Pourront l’utiliser. I Son argent en banque
  • 135. L’héritage C’est un concept fondamental de la programmation orienté objet.
  • 136. L’héritage C’est un concept fondamental de la programmation orienté objet.
  • 137. L’héritage Il offre la possibilité de réutiliser les composants logiciels existants.
  • 138. L’héritage Il offre la possibilité de réutiliser les composants logiciels existants. Une classe dérivé(=enfant) pourra utiliser les méthodes et attributs de la classe parent(=super classe).
  • 139. L’héritage Il offre la possibilité de réutiliser les composants logiciels existants. Une classe dérivé(=enfant) pourra utiliser les méthodes et attributs de la classe parent(=super classe) et pourra ajouter ses propres propriétés.
  • 140. L’héritage Il offre la possibilité de réutiliser les composants logiciels existants. Une classe dérivé(=enfant) pourra utiliser les méthodes et attributs de la classe parent(=super classe) et pourra ajouter ses propres propriétés.
  • 141. L’héritage Une classe enfant peut accéder uniquement au donnée publique et protégée.
  • 142. L’héritage Une classe enfant peut accéder uniquement au donnée publique et protégée.
  • 143. L’héritage Ce qui offre la possibilité de ne pas avoir à répartir de 0.
  • 145. L’héritage Il n’y a pas d’héritage multiple en Java
  • 146. L’héritage Une personne a un nom, un prénom, un numéro de Sécurité Sociale. Un étudiant a un nom, un prénom, un numéro de Sécurité Sociale, et une note. Un professeur a un nom, un prénom, un numéro de Sécurité Sociale, et une matière.
  • 147. L’héritage Une personne a un nom, un prénom, un numéro de Sécurité Sociale. Un étudiant a un nom, un prénom, un numéro de Sécurité Sociale, et une note. Un professeur a un nom, un prénom, un numéro de Sécurité Sociale, et une matière. Quels sont les propriétés communes au 3 ?
  • 148. L’héritage Une personne a un nom, un prénom, un numéro de Sécurité Sociale. Un étudiant a un nom, un prénom, un numéro de Sécurité Sociale, et une note. Un professeur a un nom, un prénom, un numéro de Sécurité Sociale, et une matière. Quels sont les propriétés communes au 3 ?
  • 149. L’héritage On peut centraliser le nom, le prénom, le numéro de Sécurité Sociale au sein d’une classe Personne. La classe Professeur et La classe Etudiant pourront les utiliser par le biais de l’héritage.
  • 150. L’héritage Un professeur est une personne. Un étudiant est une personne.
  • 151. L’héritage Un professeur est une personne. Un étudiant est une personne. Il s’agit de la relation « est un »
  • 152. L’héritage Un professeur est une personne. Un étudiant est une personne. Il s’agit de la relation « est un »
  • 153. L’héritage Sans héritage, on aurait Personne Etudiant Professeur #name : String -name : String -name : String # -prenom# String : -prenom# String : #prenom : String -numSS :String -numSS :String #numSS :String -note : int - Matiere :String +getName():String +getName():String +getName():String + +setName(String n): String +setName(String n): String +setName(String n): String +getprenom():String + +getprenom():String + +getprenom():String +setprenom(String n): String +setprenom(String n): String +setprenom(String n): String +setNum(int n) : void +setNum(int n) : void +setNum(int n) : void +getNum():int +getNum():int +getNum():int +getPersonne(): void +getNote):int setMatiere(String n) : void +setPersonne(String f,String +setNote(int n):void +getMatiere):String n, int s) +getEtudiant(): void +getProfesseur(): void +setEtudiant(String f,String +setProfesseur(String n, int s,int n) f,String n, String m)
  • 154. L’héritage Sans héritage, on aurait Personne Etudiant Professeur #name : String -name : String -name : String Quels sont les propriétés et # #prenom : String #numSS :String -prenom# String : -numSS :String -note : int -prenom# String : -numSS :String - Matiere :String méthodes identiques? +getName():String + +setName(String n): String +getprenom():String +setprenom(String n): String +getName():String +setName(String n): String + +getprenom():String +setprenom(String n): String +getName():String +setName(String n): String + +getprenom():String +setprenom(String n): String +setNum(int n) : void +setNum(int n) : void +setNum(int n) : void +getNum():int +getNum():int +getNum():int +getPersonne(): void +getNote):int setMatiere(String n) : void +setPersonne(String f,String +setNote(int n):void +getMatiere):String n, int s) +getEtudiant(): void +getProfesseur(): void +setEtudiant(String f,String +setProfesseur(String n, int s,int n) f,String n, String m)
  • 155. L’héritage Sans héritage, on aurait Personne Etudiant Professeur #name : String -name : String -name : String # -prenom# String : -prenom# String : #prenom : String -numSS :String -numSS :String #numSS :String -note : int - Matiere :String +getName():String +getName():String +getName():String + +setName(String n): String +setName(String n): String +setName(String n): String +getprenom():String + +getprenom():String + +getprenom():String +setprenom(String n): String +setprenom(String n): String +setprenom(String n): String +setNum(int n) : void +setNum(int n) : void +setNum(int n) : void +getNum():int +getNum():int +getNum():int +getPersonne(): void +getNote):int setMatiere(String n) : void +setPersonne(String f,String +setNote(int n):void +getMatiere):String n, int s) +getEtudiant(): void +getProfesseur(): void +setEtudiant(String f,String +setProfesseur(String n, int s,int n) f,String n, String m)
  • 156. L’héritage Avec héritage, on aurait
  • 157. L’héritage Avec héritage, on aurait N’est-il pas plus simple D’implémenter ce modèle?
  • 158. L’héritage public class Personne { } public class Professeur extends Personne { } public class Etudiant extends Personne { }
  • 159. L’héritage public class Personne { } public class Professeur extends Personne { } public class Etudiant extends Personne { }
  • 160. L’héritage public class Personne { } public class Professeur extends Personne { } public class Etudiant extends Personne { } Le mot clé extends indique au compilateur que la classe Etudiant hérite de la classe Personne.
  • 161. L’héritage public class Personne { } public class Professeur extends Personne { } public class Etudiant extends Personne { } Le mot clé extends indique au compilateur que la classe Etudiant hérite de la classe Personne.
  • 162. Le polymorphisme Le polymorphisme est un concept fondamental de la programmation orientée objet.
  • 163. Le polymorphisme Le polymorphisme est un concept fondamental de la programmation orientée objet. Dans la langue grec, il signifie « peut prendre plusieurs formes »
  • 164. Le polymorphisme Le polymorphisme est un concept fondamental de la programmation orientée objet. Dans la langue grec, il signifie « peut prendre plusieurs formes »
  • 165. Le polymorphisme Le polymorphisme offre la possibilité de définir plusieurs méthodes portant le même nom mais possédant différents paramètres.
  • 166. Le polymorphisme Le polymorphisme offre la possibilité de définir plusieurs méthodes portant le même nom mais possédant différents paramètres.
  • 167. Le polymorphisme Le polymorphisme offre la possibilité de définir plusieurs méthodes portant le même nom mais possédant différents paramètres.
  • 168. Le polymorphisme Le polymorphisme offre la possibilité de définir plusieurs méthodes portant le même nom mais possédant différents paramètres.
  • 169. Le polymorphisme Le polymorphisme offre la possibilité de définir plusieurs méthodes portant le même nom mais possédant différents paramètres. Le choix de la méthode se fera automatiquement en fonction des paramètres reçus.
  • 170. Le polymorphisme Le polymorphisme offre la possibilité de définir plusieurs méthodes portant le même nom mais possédant différents paramètres. Le choix de la méthode se fera automatiquement en fonction des paramètres reçus.
  • 171. Le polymorphisme Prenons l’exemple d’un chien qu’une personne essaye d’approcher. Chaque chien a une manière différente pour accueillir les inconnus. Et cela dépend bien évidemment de la manière dont vous l’approchez.
  • 172. Le polymorphisme Si vous lui jetez une pierre. Sa méthode accueillir va recevoir en argument une pierre. Voilà comment il va réagir.
  • 173. Le polymorphisme Si vous lui jetez une pierre. Sa méthode accueillir va recevoir en argument une pierre. Voilà comment il va réagir.
  • 174. Le polymorphisme Si vous lui donner à manger. Sa méthode accueillir va recevoir en argument de la nourriture. Voilà comment il va réagir.
  • 175. Le polymorphisme Si vous lui donner à manger. Sa méthode accueillir va recevoir en argument de la nourriture. Voilà comment il va réagir.
  • 176. Le polymorphisme Nous venons de voir que le même objet Chien pouvait avoir des comportements différents. La même méthode accueillir va avoir un comportement différent en fonction des paramètres reçus.
  • 177. Le polymorphisme Nous venons de voir que le même objet Chien pouvait avoir des comportements différents. La même méthode accueillir va avoir un comportement différent en fonction des paramètres reçus.
  • 178. Classe Abstraite Une classe abstraite est une classe dont l’implémentation n’est pas complète.
  • 179. Classe Abstraite Une classe abstraite est une classe dont l’implémentation n’est pas complète. Elle va servir de modèle pour les classes enfants.
  • 180. Classe Abstraite Une classe abstraite est une classe dont l’implémentation n’est pas complète. Elle va servir de modèle pour les classes enfants.
  • 181. Classe Abstraite Une classe abstraite est une classe dont l’implémentation n’est pas complète. Elle va servir de modèle pour les classes enfants. La classe abstraite va définir des méthodes en fournissant leur signature.
  • 182. Classe Abstraite Une classe abstraite est une classe dont l’implémentation n’est pas complète. Elle va servir de modèle pour les classes enfants. La classe abstraite va définir des méthodes en fournissant leur signature.
  • 184. Classe Abstraite Le type de retour Le nom
  • 185. Classe Abstraite Le type de retour Le nom Le type d’argument
  • 186. Classe Abstraite Le type de retour Le nom Le type d’argument C’est une assurance pour la classe de base les classes enfants respecteront bien les Spécifications.
  • 187. Classe Abstraite Le type de retour Le nom Le type d’argument C’est une assurance pour la classe de base que les classes enfants respecteront bien les Spécifications définie
  • 188. Classe abstraite Une classe est dite abstraite si et seulement si elle détient une ou plusieurs méthodes abstraites.
  • 189. Classe abstraite Il n’est pas possible d’instancier une classe abstraite.
  • 190. Classe abstraite Il n’est pas possible d’instancier une classe abstraite.
  • 191. Classe abstraite Par exemple, un animal domestique.
  • 192. Classe abstraite Par exemple, un animal domestique. On sait qu’il aura obligatoirement Une méthode parler. Tous les animaux domestiques parlent mais chacune a sa manière.
  • 193. Classe abstraite Par exemple, un animal domestique. Les oiseaux vont dire : Cik Cik Cik
  • 194. Classe abstraite Par exemple, un animal domestique. Le chat va dire : Miaou Miaou
  • 195. Classe abstraite Par exemple, un animal domestique. Le chien va dire : Hav Hav Hav
  • 196. Classe abstraite Si l’on définie une classe abstraite Animal Domestique, on va y placer La méthode abstraite « parler » . Ainsi chaque classe enfant va implémenter la méthode parler à sa manière.
  • 197. Classe abstraite Par exemple, un animal domestique. Ainsi, la classe Chien va dire : Hav Hav Hav
  • 198. Classe abstraite Par exemple, un animal domestique. Ainsi, la classe Oiseau va dire : Cik Cik Cik
  • 199. Les classes Interfaces Nous avons vu auparavant que l’héritage multiple n’existe pas en Java. Nous avons vu que les classes abstraites ne définissent que la signature des méthodes.
  • 200. Les classes Interfaces Nous avons vu auparavant que l’héritage multiple n’existe pas en Java. Nous avons vu que les classes abstraites ne définissent que la signature des méthodes.
  • 201. Les classes Interfaces Une classe interface va aussi définir simplement les signatures des méthodes pour les classes enfants.
  • 202. Les classes Interfaces Une classe interface va aussi définir simplement les signatures des méthodes pour les classes enfants.
  • 203. Les classes Interfaces Une classe interface va aussi définir simplement les signatures des méthodes pour les classes enfants. Mais celui-ci est plus riche qu’une classe abstraite. Savez vous pourquoi?
  • 204. Les classes Interfaces Une classe interface va aussi définir simplement les signatures des méthodes pour les classes enfants. Mais celui-ci est plus riche qu’une classe abstraite. Savez vous pourquoi?
  • 205. Les classes Interfaces Il est possible d’hériter d’une seule classe car l’héritage multiple n’existe pas en Java.
  • 206. Les classes Interfaces Il est possible d’hériter d’une seule classe car l’héritage multiple n’existe pas en Java. Mais une classe peut implémenter plusieurs classes interfaces.
  • 207. Les classes Interfaces Il est possible d’hériter d’une seule classe car l’héritage multiple n’existe pas en Java. Mais une classe peut implémenter plusieurs classes interfaces.
  • 208. Les classes Interfaces Il est possible d’hériter d’une seule classe car l’héritage multiple n’existe pas en Java. Mais une classe peut implémenter plusieurs classes interfaces. Une classe peut hériter une classe C1 et implémenter une ou plusieurs classes interfaces I1,I2,I3,I4,…….
  • 209. Les classes Interfaces Il est possible d’hériter d’une seule classe car l’héritage multiple n’existe pas en Java. Mais une classe peut implémenter plusieurs classes interfaces. Une classe peut hériter une classe C1 et implémenter une ou plusieurs classes interfaces I1,I2,I3,I4,…….
  • 210. Les classes Interfaces Il est possible d’hériter d’une seule classe car l’héritage multiple n’existe pas en Java. Mais une classe peut implémenter plusieurs classes interfaces. Une classe peut hériter une classe C1 et implémenter une ou plusieurs classes interfaces I1,I2,I3,I4,…….
  • 211. Les classes Interfaces Mickael Jackson Est un danseur Est un chanteur
  • 212. Les classes Interfaces Mickael Jackson Un chanteur n’est pas Un danseur
  • 213. Les classes Interfaces Mickael Jackson Un chanteur n’est pas Un danseur Un danseur n’est pas Un chanteur
  • 214. Les classes Interfaces Comment faire ? Une classe ne peut hériter d’une seule classe. Voilà, les classes interfaces vont nous aider.
  • 215. Les classes Interfaces On va faire appel à deux classes interfaces. Danseur Et Chanteur
  • 216. Les classes Interfaces On va faire appel à deux classes interfaces. Danseur Et Chanteur Mickael Jackson va implémenter ces 2 interfaces.