[Squeak-fr] Classe d'une instance

Stephane Ducasse squeak-fr@lists.squeakfoundation.org
Thu Jan 16 18:45:01 CET 2003


On Thursday, January 16, 2003, at 03:19 PM, Tancr=E8de Fourmaintraux=
=20
wrote:

> Les classes de MyClockMorph et MyMorph ne redefinissent pas la meth=
ode=20
> new .
> Donc je devrais obtenir le meme comportement. Non?
>
> Si je decompose la recherche de la methode lors du code suivant :=
=20
> MyMorph
> 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
>
> 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 MyClockMo=
rph?

Non de MyClockMorph si tu as fait MyClockMorph new pourquoi cela=20
serait-il autrement.

tu dois continuer super new remonte plus haut disons jusqu'a behavior=
,=20
new rend une instance de la class MyClockMorph.

Rappelle toi, le lookup cherche une methodes ***ET*** lie le self et=
=20
super de cette methode au receiver de la methode recherchee.

qd on envoie aMyClockMorph printString, prinString est trouvee sur=
=20
Object le self et super
dans printString et alors lie a aMyClockMorph. (en fait super modifie=
=20
juste le lookup des methodes pour demarrer un etage plus haut par=
=20
rapport ou elles sont definies)

self represente *******TOUJOURS********* le receveur du message meme=
=20
dans une methode
trouvee 10 km plus haut. TOUJOURS TOUJOURS c'est ca le late-binding.

Je te conseille de lire mon cours sur OOP a=20
http://scgwiki.iam.unibe.ch:8080/StephaneDucasseWiki

j'ai des tonnes de dessins qui explique ca. Je ne sais plus dans quel=
=20
fichier.


>
>
> Au fait dans la methode new de classe LineMorph
> Pourquoi executer ^PolygonMorph vertices:color:borderWidth:borderCo=
lor=20
> et
> non pas ^super vertices:color:borderWidth:borderColor puisque=20
> LineMorph est
> enfant de PolygonMorph

Ca je crois que tu as raison, je n'ai pas le temps de regarder dans l=
e=20
code maintenant
mais coder en dur un nom de class est toujours suspicieux.

>
> Je ne vois pas quelle est mon erreur.
>
> Tancr=E8de
>
> ----- 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
>
>
> Normal, la classe LineMorph red=E9fini le new pour cr=E9er une inst=
ance de
> PolygoneMorph...
>
> Noury
>
> Tancr=E8de Fourmaintraux a =E9crit:
>> Bonjour,
>>
>> Ceci est mon premier post sur cette liste, j'ai decouvert squeak i=
l y
>> qqs semaines.
>>
>> Mon probl=E8me est le suivant :
>> Je cr=E9e la classe MyClockMorph : ClockMorph subclass: #MyClockMo=
rph
>> 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:=
=20
>> #MyMorph
>> 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=
=20
>> objets
>> typ=E9s.
>>
>> Merci de votre aide.
>>
>> Tancr=E8de
>>
>
>
> --
> ------------------------------------------
> Noury Bouraqadi - Enseignant/Chercheur
> Ecole des Mines de Douai - Dept. G.I.P
> http://csl.ensm-douai.fr/noury
> ------------------------------------------
>
>
> _______________________________________________
> Squeak-fr mailing list
> Squeak-fr@lists.squeakfoundation.org
> http://lists.squeakfoundation.org/listinfo/squeak-fr
>
> _______________________________________________
> Squeak-fr mailing list
> Squeak-fr@lists.squeakfoundation.org
> http://lists.squeakfoundation.org/listinfo/squeak-fr
>
>
Dr. St=E9phane DUCASSE (ducasse@iam.unibe.ch)=20
http://www.iam.unibe.ch/~ducasse/
  "if you knew today was your last day on earth, what would you do
  different? ... especially if, by doing something different, today
  might not be your last day on earth" Calvin&Hobbes





More information about the Squeak-fr mailing list