32

Introduction au paradigme objet

  • Upload
    trudy

  • View
    37

  • Download
    0

Embed Size (px)

DESCRIPTION

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 ) - PowerPoint PPT Presentation

Citation preview

Page 1: Introduction au paradigme objet
Page 2: Introduction au paradigme objet
Page 3: Introduction au paradigme objet
Page 4: 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

Page 5: Introduction au paradigme objet

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é.

Page 6: Introduction au paradigme objet

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.

Page 7: Introduction au paradigme objet

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.

Page 8: Introduction au paradigme objet

Rappel : public class Personne{ private String nom; }

Personne unePersonne; //définit un objet de la classe PersonneunePersonne.nom //illegal car l’attribut nom est private

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

Définition de classe

Page 9: Introduction au paradigme objet

– 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 }}

Définition de classe

Page 10: Introduction au paradigme objet
Page 11: Introduction au paradigme objet
Page 12: Introduction au paradigme objet

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;

}}

Page 13: Introduction au paradigme objet

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()

5

objet 1

x

objet2

X 5

Page 14: Introduction au paradigme objet

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,

…)

Page 15: Introduction au paradigme objet

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).

Page 16: Introduction au paradigme objet

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(){}

Page 17: Introduction au paradigme objet
Page 18: Introduction au paradigme objet
Page 19: Introduction au paradigme objet
Page 20: Introduction au paradigme objet
Page 21: Introduction au paradigme objet
Page 22: Introduction au paradigme objet
Page 23: Introduction au paradigme objet
Page 24: Introduction au paradigme objet

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;

}

Page 25: Introduction au paradigme objet

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;

}

Page 26: Introduction au paradigme objet

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.

Page 27: Introduction au paradigme objet

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

Page 28: Introduction au paradigme objet

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

Page 29: Introduction au paradigme objet

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à.

Page 30: Introduction au paradigme objet
Page 31: Introduction au paradigme objet

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

Page 32: Introduction au paradigme objet

FIN DU COURS