Download
1 / 32

Introduction au paradigme objet - PowerPoint PPT Presentation


  • 72 Views
  • Uploaded on

Introduction au paradigme objet. Concepts importants surcharge ( overload ) redéfinition ( override ) Définition d’une classe Définition des attributs (caratéristiques) encapsulation (avec private ) this constructeur classes immuables ( get ) classes mutables ( set )

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Introduction au paradigme objet' - trudy


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Introduction au paradigme objet

Introduction au paradigme objet

Concepts importants

surcharge (overload)

redéfinition (override)

Définition d’une classe

Définition des attributs (caratéristiques)

encapsulation (avec private)

this

constructeur

classes immuables (get)

classes mutables (set)

destructeur (finalize)

Autres méthodes (opérateurs, comportements, …)

Mot clé static

Construction d’une classe


Concepts
Concepts

  • Surcharge

    • Il est possible que plusieurs fonctions aient le même nom.

    • Il faut que le type des paramètres formels ou que le type de la valeur de retour soient différents.

      Exemple : int pow(int,int)

      double pow(double, int)

    • C’est à partir des paramètres effectifs que l’appel est déterminé.


Concepts1
Concepts

  • Redéfinition

    • Il est possible que plusieurs fonctions aient le même nom, les mêmes types pour les paramètres formels et le même type de valeur de retour.

    • C’est la fonction la plus proche qui sera appelée au point de vue visibilité.

    • On ne peut pas redéfinir une méthode dans un même bloc.


D finition de classe
Définition de classe

  • Un langage orienté-objet

    • Encapsulation

    • Héritage

    • Polymorphisme dynamique

  • Encapsulation

    • C’est rendre indépendant l’utilisation d’un classe de son implémentation.

  • Réalisation de l’encapsulation en java

    • L’encapsulation se fait grâce à l’aide d’attributs ayant le modificateur d’accès private.

    • Seules les membres de la classe (exclus les objets) peuvent utiliser ces attributs.


  • D finition de classe1
    Définition de classe

    Rappel :

    public class Personne{

    private String nom;

    }

    Personne unePersonne; //définit un objet de la classe Personne

    unePersonne.nom //illegal car l’attribut nom est private

    • Une classe offrira l’accès à ses attributs via des méthodes.


    D finition de classe2
    Définition de classe

    • Les attributs d’une classe sont toujours initialisés par défaut à l’opposé des variables locales d’un sous programme.

      Exemple :

      public class Personne{

      private String nom; //nom est égal à null

      private int age; //age est égal à 0;

      public void uneFonction() {

      int age; //age n’est pas initialisé ici

      }

      }


    Identificateur this
    Identificateur this

    this

    • C’est une référence gérée par Java et n’est utilisable qu’à l’intérieur d’une classe. On parle de l’objet actuel.

    • Cette référence pointe sur l’objet qui a appelé la méthode. C’est ni plus ni moins que l’objet en avant du point au moment de l’appel de la méthode.

    • Utilisable seulement dans les méthodes non static d’une classe.

      Soit :

      Public class Personne {

      String nom;

      public void setNom(String nom) {

      this.nom = nom;

      }

      }


    Identificateur this1
    Identificateur this

    Soit :

    public class UneClasse

    int x;

    public void methode1(){

    this.x = 5;

    ...

    }

    UneClasse objet1 = new UneClasse();

    UneClasse objet2 = new UneClasse();

    objet1.methode1(); //this == objet1 dans methode1()

    objet2.methode1(); //this == objet2 dans methode1()

    objet 1

    x

    objet2

    X


    D finition de classe3
    Définition de classe

    Rappel :

    • Une classe est constituée d’attributs et de méthodes.

    • Une méthode est un sous programme que l’on peut démarrer à partir d’une autre méthode d’une classe, d’une classe ou d’un objet selon le modificateur d’accès et si elle est static ou non.

  • Les méthodes contenues dans une classes se divisent en plusieurs catégories

    • Constructeurs

    • Accesseurs

    • Mutateurs

    • Destructeur

    • Les autres méthodes (opérateurs, comportements, …)


  • D finition de classe4
    Définition de classe

    • Constructeurs

      • Méthodes qui permettent de créer une instance(objet) et d’initialiser les attributs de cet instance au moment de son instanciation (new).

      • Il y a réservation d’espace mémoire à ce moment seulement

    • Porte le même nom que la classe.

    • N’a aucun type de retour dans sa définition mais retourne une instance de la classe.

      • Définition : public String(String original){…}

      • Appel : String s = new String(« allo »); //appel le constructeur

    • Si aucun constructeur n’est écrit, il en existe un par défaut qui ne fait rien et les attributs sont initialisés avec leur valeur par défaut (selon le type).


    D finition de classe5
    Définition de classe

    • Peut être surchargé

      Exemple : public class String{

      public String(String original) {…}

      public String(char[] value) {…}

      public String(StringBuffer buffer) {…}

      }

    • Aussitôt qu’il y a un constructeur écrit, celui par défaut n’existe plus, il faut l’écrire explicitement pour en avoir un.

      • Exemple : public String(){}


    D finition de classe6
    Définition de classe

    • Accesseurs

      • Méthodes qui permettent d’obtenir le contenu des attributs privés d’une classe.

    • Souvent commence par « get »

    • Si une classe n’a que des accesseurs, on dit qu’elle est immuable (non modifiable).

    • N’a habituellement pas de paramètres et sert à retourner le contenu d’un attribut privé.

      Exemple : public String getNom() {

      return nom;

      }


    D finition de classe7
    Définition de classe

    • Mutateurs

      • Méthodes qui permettent de modifier le contenu des attributs privés d’une classe.

    • Souvent commence par « set » (setNom, setAge, setPrenom,…).

    • Si une classe a des mutateurs, on dit qu’elle est mutable (modifiable).

    • Ne retourne habituellement rien et a un paramètre qui remplacera le contenu d’un attribut

      Exemple : public void setNom(String nom) {

      this.nom = nom;

      }


    D finition de classe8
    Définition de classe

    • Les comportements

      • Celles qui définissent le comportement des instances de la classe ou de la classe elle-même, qui ne sont pas des autres catégories citées avant.

        Exemple : copie() //retourne une copie d’un objet

        toString() //retourne une chaîne de caractères

        //représentant l’objet

        equals() //opérateur relationnel de comparaison

        Etc.


    D finition de classe9
    Définition de classe

    • Destructeur

      • Méthode qui permet, lors de la fin de la portée d’un objet, de remettre au système les ressources utilisées par un objet.

    • Cette méthode est appelée automatiquement lorsque la dernière référence à une instance n’y fait plus référence. Par exemple x = null; S’il n’y a aucune autre référence sur l’instance sur laquelle x pointait, la méthode Finalize() est appelée.

    • Les ressources utilisées peuvent être une imprimante, de la mémoire, etc. Cela pourrait être aussi de terminer une autre application, …

      Exemple : public void Finalize() {

      //le code à exécuté

      }

      ****Nous n’en utiliserons pas dans ce cours


    Mot cl static
    Mot clé static

    • static

      • La valeur d’un membre public définie comme étant static existe pour tous les objets d’une même classe.

      • Un attribut static n’est pas initialisé lors de l’instanciation d’un objet mais une seule fois au début d’un programme.

      • S’il y a une modification faite par un objet sur un attribut static, tous les autres objets de cette classe en verront les effets.

      • On peut les voir comme des membres appartenant à toute la classe et non à un objet en particulier.

      • this ne peut pas être utilisé dans une méthode static


    Mot cl static1
    Mot clé static

    Règles

    • On ne peut utiliser directement que des variables locales ou des membres static dans une méthode static(pensez à main()).

    • On se sert du nom de la classe (norme) pour utiliser des membres static et non du nom d’un objet.

      • Ex:Math.pow()

  • La fonction main() n’a pas accès aux membres de la classe dans laquelle elle est définie à moins qu’ils soient static (Ça on le savait déjà.


  • Exemple
    Exemple

    public class ExempleStatic {

    private static int n;

    //constructeur par défaut

    public ExempleStatic (){

    n = n + 1;

    }

    public static int getNombreObjet(){

    return n;

    }

    }

    ExempleStatic e1 = new ExempleStatic();

    ExempleStatic e2 = new ExempleStatic();

    ExempleStatic e3 = new ExempleStatic();

    System.out.print(ExempleStatic.getNombreObjet()); //affichera 3



    ad