[Squeak-fr] Classe d'une instance

Noury Bouraqadi squeak-fr@lists.squeakfoundation.org
Thu Jan 16 16:05:00 CET 2003


Tancr=E8de Fourmaintraux a =E9crit:
> Les classes de MyClockMorph et MyMorph ne redefinissent pas la methode =
new .
> Donc je devrais obtenir le meme comportement. Non?
>=20
Mais LineMorph (qui est superclasse de MyMorph) red=E9fini une m=E9thode =

de classe new et c'est celle-ci qui est utilis=E9e quand tu envoies le=20
message new =E0 MyMorph. Ta trace ci-dessous le montre bien.

> Si je decompose la recherche de la methode lors du code suivant : MyMor=
ph
> new class
> 1 -> recherche de la methode dans la classe MyMorph
> 2 -> recherche de la methode dans la classe LineMorph
> 3 -> execution de new dans la classe LineMorph
> 4 -> retour de PolygonMorph vertices:color:borderWidth:borderColor
> 5 -> j'obtiens une instance de PolygonMorph. OK
>=20
> Si je decompose la meme recherche dans MyClockMorph
> 1 -> recherche de la methode dans la classe MyClockMorph
> 2 -> recherche de la methode dans la classe ClockMorph
> 3 -> recherche de la methode dans la classe StringMorph
> 4 -> recherche de la methode dans la classe Morph
> 5 -> execution de ^ super new initialize
> 6 -> j'obtiens une instance de quoi? Object ou Morph? Pas MyClockMorph?=

>=20
super r=E9f=E9rence l'objet courant (comme self) qui est donc MyClockMorp=
h=20
mais la recherche commence au niveau de la superclasse de la classe=20
courante. La classe courante =E9tant 'Morph class' la recherche se=20
poursuit dans sa superclasse qui est 'Object class'... Au final, c'est=20
  la m=E9thode new 'de base' qui est ex=E9cut=E9e...

>=20
> Au fait dans la methode new de classe LineMorph
> Pourquoi executer ^PolygonMorph vertices:color:borderWidth:borderColor =
et
> non pas ^super vertices:color:borderWidth:borderColor puisque LineMorph=
 est
> enfant de PolygonMorph
>=20
C'est effectivement bizarre... En regardant la classe LineMorph on=20
voit qu'elle n'introduit ni variable d'instance ni m=E9thodes=20
d'instances... Elle est l=E0 juste comme "interface" de cr=E9ation... Cel=
a=20
ne m'a pas l'air terrible en terme de conception...

Noury
>=20
> Tancr=E8de
>=20
> ----- Original Message -----
> From: "Noury Bouraqadi" <bouraqadi@ensm-douai.fr>
> To: <squeak-fr@lists.squeakfoundation.org>
> Sent: Thursday, January 16, 2003 2:47 PM
> Subject: Re: [Squeak-fr] Classe d'une instance
>=20
>=20
> Normal, la classe LineMorph red=E9fini le new pour cr=E9er une instance=
 de
> PolygoneMorph...
>=20
> Noury
>=20
> Tancr=E8de Fourmaintraux a =E9crit:
>=20
>>Bonjour,
>>
>>Ceci est mon premier post sur cette liste, j'ai decouvert squeak il y
>>qqs semaines.
>>
>>Mon probl=E8me est le suivant :
>>Je cr=E9e la classe MyClockMorph : ClockMorph subclass: #MyClockMorph
>>J'execute le code suivant dans le workspace : Transcript show:
>>MyClockMorph new class
>>et j'obtiens : MyClockMorph
>>OK je comprends.
>>
>>Je refaire ce test avec la classe MyMorph : LineMorph subclass: #MyMorp=
h
>>et le code Transcript show: MyMorph new class donne PolygonMorph
>>Probleme : pourquoi j'obtiens la classe parent parent de MyMorph? (Je
>>n'ai pas surcharge la methode de classe new) Pourquoi j'ai un
>>comportement different dans les deux cas?
>>
>>
>>Je viens du monde java et j'ai l'habitude de travailler avec des objets=

>>typ=E9s.
>>
>>Merci de votre aide.
>>
>>Tancr=E8de
>>
>=20
>=20
>=20
> --
> ------------------------------------------
> Noury Bouraqadi - Enseignant/Chercheur
> Ecole des Mines de Douai - Dept. G.I.P
> http://csl.ensm-douai.fr/noury
> ------------------------------------------
>=20
>=20
> _______________________________________________
> Squeak-fr mailing list
> Squeak-fr@lists.squeakfoundation.org
> http://lists.squeakfoundation.org/listinfo/squeak-fr
>=20
> _______________________________________________
> Squeak-fr mailing list
> Squeak-fr@lists.squeakfoundation.org
> http://lists.squeakfoundation.org/listinfo/squeak-fr
>=20
>=20


--=20
------------------------------------------
Noury Bouraqadi - Enseignant/Chercheur
Ecole des Mines de Douai - Dept. G.I.P
http://csl.ensm-douai.fr/noury
------------------------------------------





More information about the Squeak-fr mailing list