La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Résumé des concepts liés aux objets C. Petitpierre, EPFL.

Présentations similaires


Présentation au sujet: "Résumé des concepts liés aux objets C. Petitpierre, EPFL."— Transcription de la présentation:

1 Résumé des concepts liés aux objets C. Petitpierre, EPFL

2 Objets Un objet représente quelque chose, adresse d’une personne, facture, élément graphique. L’objet est distinct de la chose, mais il mémorise les informations qui concerne la chose et les opérations qu’on peut effectuer sur elle. Quand on développe un programme, on se fait un modèle (peut-être seulement en pensée) de l’objet. Ce modèle est à la fois celui de l’objet et celui de la chose. Lorsque l’on réfléchit ou discute du modèle, on confond souvent les deux aspects du modèle, mais cela n’a pas de conséquences particulières.

3 Objet Un objet possède des attributs des opérations Il peut être créé directement ou par chablon (new)

4 x y width height setAttribute (id, a) this rect = { x : 0, y : 0, setAttribute : function(id, a) { this[id] = a } rect.setAttribute("y", 100) // utilisation La chose Le modèleLa spécification (directe)

5 x setAttribute (id, a) Rect = function() { this.x = 0 this.setAttribute = function(id, a) { this[id] = a // interne } Spécification simple d’un chablon Le chablon apparaît sous la forme d’un constructeur, c’est-à-dire d’une fonction, mais qui n’est utilisée que pour créer des objets.

6 x setAttribute (id, a) Rect = function() { } // constructeur Rect.prototype.x = 0 Rect.prototype.setAttribute = function(id, a) { this[id] = a // interne } Spécification d’un chablon avec prototype

7 x y width height setAttribute (id, a) this Rect = function() { this.x = 0 this.y = 0 this.setAttribute = function(id, a) { this[id] = a // interne } rect = new Rect() // création rect.setAttribute("y", 100) // utilisation La chose Le modèleLa spécification (par chablon)

8 obj = new Constr() Constr.prototype.g = function() { return "salut" } alert(obj.g()) Extension d’un chablon Javascript définit un prototype, grâce auquel le chablon peut être complété même après la création d’un objet par le biais de new. Dans ce cas, même les objets qui ont été créés avant l’extension reçoivent l’extension. ( Pour étendre un chablon avec tous les attributs et fonctions d’un autre chablon, on utilise l’héritage, vu plus loin )

9 x y width height setAttribute (id, a) up(d) left(d) La chose Le modèle stroke stroke-width Héritage ou composition d’objets

10 La spécification (héritage) function Constructor() {... } Derived.extend(Constructor) function Derived(arg, arg2) { Derived.upper(this, arg) this.attribute2 = arg2 } Il y a un bouton dans LemanOS pour générer la structure ci-dessus!

11

12

13 Création et extension d’un objet Un objet créé directement existe dès qu’il a été défini. Si l’on doit créer plusieurs objets du même modèle, on utilise le chablon (le constructeur). En Javascript, on peut à tout moment compléter un objet par de nouveaux champs ou de nouvelles opérations. En Javascript et dans les autres langages, on peut étendre le chablon au moyen de l’héritage.

14 // les attributs et les fonctions peuvent être ajoutés // après la création de l’objet, quelque soit la façon // dont ils ont été créé obj.attr = 123 obj.m = function(a) { this.x = a } Adjonction d’un attribut

15 // le système appelle new <rect id="rectr" x="275" y="257" rx="5" ry="5" width="40" height="40" fill="red"/> // adjonction d’une fonction à un objet graphique document.getElementById('rectr').up = function (delta) { this.setAttribute("y",parseInt(this.getAttribute("y"))-delta) } Création et extension d’un objet graphique

16 <rect id="rectr" x="275" y="257" rx="5" ry="5" width="40" height="40" fill="red"/> // adjonction d’une fonction à tous les objets // (graphiques ou non) Object.prototype.up = function (delta) { this.setAttribute("y",parseInt(this.getAttribute("y"))-delta) } Extension d’objets graphiques


Télécharger ppt "Résumé des concepts liés aux objets C. Petitpierre, EPFL."

Présentations similaires


Annonces Google