Concepts d - PowerPoint PPT Presentation

Loading...

PPT – Concepts d PowerPoint presentation | free to download - id: 737008-NGNhZ



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

Concepts d

Description:

Concepts d h ritage H ritage d impl mentation hasA H ritage de sp cialisation isA H ritage Javascript, rappel Constructeur en Javascript Mise en commun d ... – PowerPoint PPT presentation

Number of Views:44
Avg rating:3.0/5.0
Slides: 13
Provided by: peti163
Learn more at: http://lemanos.ch
Category:
Tags: concepts | java

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: Concepts d


1
Concepts dhéritage
  • Héritage dimplémentation hasA
  • Héritage de spécialisation isA

2
Héritage Javascript, rappel
function Translation()     this.tPrint  functio
n()         ctx.save()        ctx.translate(thi
s.xt,this.yt)        this.print()        ctx.res
tore()        this.initTranslation  function(x
t,yt)         this.xt  xt        this.yt  yt
// définition des attributs     functi
on Cercle(x,y,r,xt,yt)     this.initTranslation(
xt,yt)     this.print  function()         ctx.
beginPath()        ctx.arc(x,y,r,0,2Math.PI,true
)        ctx.stroke()    
. . . Cercle.prototype  new Translation()
function execute()     var cercle1  new Cercle(
50,50,15,0,0)    cercle1.tPrint()    var cercle2
  new Cercle(50,55,15,90,90)    cercle2.tPrint()

3
Héritage en général
3
Héritage de spécialisation isA Un cercle estUn
élément graphique Base pour Java (langage typé)
Héritage dimplémentation hasA Un cercle aUn un
transformateur Base pour Javascript
Si le cercle estUn élément graphique, il aUne
méthode dessiner() Si le cercle aUn opérateur de
transformation, il estUn élément de lensemble
des objets (classe) qui possèdent un tel
opérateur.5
4
Constructeur en Javascript
function Cercle(nom)     this.nom  nom    this
.dessiner  function()         document.write(th
is.nom)     . . . c  new Cercle("cer")c.de
ssiner()
5
Constructeur en Java
class Cercle
// enveloppe String
nom Cercle(String nom)
// constructeur this.nom
nom void dessiner() System.out.println(nom
) ou Cercle(String
_nom) nom _nom . . .
Cercle c new Cercle("cer") c.dessiner()
5
6
Mise en commun dobjets
On suppose quon veut mettre différents types
dobjets dans un même tableau pour les afficher
en appelant leur fonction dessiner. Il faut donc
quils aient (aUne) tous la fonction dessiner.
Javascript var els   els0  new Ce
rcle("cer1")els0.dessiner() els1
new Rectangle("rec1")els1.dessiner()
Java Cercle els new
Cercle 12 els0 new Cercle("cer1") els0.d
essiner() els1 new Rectangle("rec1") els1.
dessiner()
7
Solution (Java)
class ElementGraphique // un ElementGraphique
aUne fonction dessiner void dessiner()

// à redéfinir class Cercle extends
ElementGraphique // estUn
ElementGraphique void dessiner()
// redéfinition
de dessiner System.out.println(nom)
ElementGraphique els new
ElementGraphique 12 els0 new
Cercle("cer1") els1 new Rectangle("rec1") el
s0.dessiner() els1.dessiner()
7
8
Comparaison Java - Javascript
En Java on définit explicitement la relation
estUn. Un ElementGraphique crée un objet qui aUne
fonction dessiner() et le compilateur peut ainsi
assurer que les instructions quil compile
nappellent que des objets de la bonne
classe. En Javascript, la relation estUn est
gratuite, mais si lon appelle une méthode qui
na pas été définie dans un objet, le programme
sarrête au moment où il appelle cette fonction.
9
Polymorphisme
aUn suffit en Javascript estUn assure aUn en Java
10
Adjonction dun opérateur (aUne)
On veut définir une nouvelle fonction qui dessine
le nom dans une balise lth1gt
Javascript function Transform() 
    this.nDessiner  function()         docume
nt.write("lth1gt")        this.dessiner()        d
ocument.write("lt/h1gt")     Cercle.prototype 
 new Transform()
Java public class
ElementGraphique void nDessiner()
System.out.print("lth1gt")
dessiner() System.out.println("lt/h1gt")
void dessiner() // ajouté
à la classe existante // héritage déjà fait par
extends
11
Héritage multiple(en cascade)
class Transformation class ElementGraphique
extends Transformation class Cercle extends
ElementGraphique
function Transformation() ElementGraphique.pro
totype new Transformation() function ElementGrap
hique()  Cercle.prototype new
ElementGraphique() function Cercle(nom) 
12
Harmonisation des noms, Attribut nom déplacé dans
la super-classe
class ElementGraphique String
nom ElementGraphique(String nom) this.nom
nom void dessiner() void
nDessiner() . . . class Cercle extends
ElementGraphique Cercle(String nom)
super(nom) void dessiner() System.out.
println(nom)
function ElementGraphique()      this.init  fun
ction(nom)         this.nom  nom         thi
s.nDessiner  function()  . . . 
function Cercle(nom)      this.init(nom)    
this.dessiner  function()         document.w
rite(this.nom)    
12
About PowerShow.com