Un truc qui me turlupine,
Je defini une class Toto en surcharge de la class Object. Dans cette class je defini une methode d' instance initialize.
Ensuite je peux instancier Toto par un 'Toto new', la methode initialize est parfaitement appelee.
Maintenant si j'essaye de comprendre ce qui ce passe, je cherche donc dans la hierarchie de Toto la methode de class new. Cependant, je ne la trouve pas. Ni dans Object ni dans ProtoObject.
Je ne comprends donc pas quelle boucle suit l'instanciation et initialisation de Toto. Une explication ?
Hilaire
Salut,
Le message new se trouve dans la classe Behavior. "Toto" est instance de "Toto class", qui est une Metaclass . Metaclass hérite de ClassDescription, qui hérite de Behavior, qui définit new.
Romain
On Sep 11, 2004, at 12:18 PM, Hilaire Fernandes wrote:
Un truc qui me turlupine,
Je defini une class Toto en surcharge de la class Object. Dans cette class je defini une methode d' instance initialize.
Ensuite je peux instancier Toto par un 'Toto new', la methode initialize est parfaitement appelee.
Maintenant si j'essaye de comprendre ce qui ce passe, je cherche donc dans la hierarchie de Toto la methode de class new. Cependant, je ne la trouve pas. Ni dans Object ni dans ProtoObject.
Je ne comprends donc pas quelle boucle suit l'instanciation et initialisation de Toto. Une explication ?
Hilaire
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
On Sat, 11 Sep 2004 13:41:21 +0200 Romain Robbes rrobbes@info.unicaen.fr wrote:
Le message new se trouve dans la classe Behavior.
"Toto" est instance de "Toto class", qui est une Metaclass . Metaclass hérite de ClassDescription, qui hérite de Behavior, qui définit new.
Comment fait on pour le voir dans le Broser ? Je n'ai pas r'eussi `a remonter jusqu'a la.
Hilaire
Le 11 sept. 04, à 14:10, Hilaire Fernandes a écrit :
On Sat, 11 Sep 2004 13:41:21 +0200 Romain Robbes rrobbes@info.unicaen.fr wrote:
Le message new se trouve dans la classe Behavior.
"Toto" est instance de "Toto class", qui est une Metaclass . Metaclass hérite de ClassDescription, qui hérite de Behavior, qui définit new.
Comment fait on pour le voir dans le Broser ? Je n'ai pas r'eussi `a remonter jusqu'a la.
Regarde avec le browser la méthode new de la classe Behavior.
-- oooo Serge Stinckwich OOOOOOOO Université de Caen>CNRS UMR 6072>GREYC>MAD OOESUGOO http://purl.org/net/SergeStinckwich oooooo Smalltalkers do: [:it | All with: Class, (And love: it)] \ / ##
Hilaire
prend mon cours smalltalk et regarde le: http://www.iam.unibe.ch/~scg/Archive/index.html#LECTURES
En gros, il n'y a pas de cosntructeurs en Smalltalk, juste un message envoye a un objet = une class
donc qd tu envoies un message a un object, tu cherches dans sa classes stef mange -> on cherche mange dans la class de stef = Person ou dans ses superclasses...
Person new -> on cherche new dans la class de Person = Person class
si tu implementes new sur Person class comme suit
new
Transcript show: 'hhhhh' ; cr. ^ super new
cette methode sera executee sinon tu remontes dans la superclass de Person class....tu vas arriver a Object class puis Behavior
essaye stef class superclass superclass superclass..... en faisant un print a chque etape
Mais l'idee est qu'il n'y a pas de difference entre les objets et les classes, il n'y a qu'un seul mechanisme
Stef
On 11 sept. 04, at 14:14, Serge Stinckwich wrote:
Le 11 sept. 04, à 14:10, Hilaire Fernandes a écrit :
On Sat, 11 Sep 2004 13:41:21 +0200 Romain Robbes rrobbes@info.unicaen.fr wrote:
Le message new se trouve dans la classe Behavior.
"Toto" est instance de "Toto class", qui est une Metaclass . Metaclass hérite de ClassDescription, qui hérite de Behavior, qui définit new.
Comment fait on pour le voir dans le Broser ? Je n'ai pas r'eussi `a remonter jusqu'a la.
Regarde avec le browser la méthode new de la classe Behavior.
-- oooo Serge Stinckwich OOOOOOOO Université de Caen>CNRS UMR 6072>GREYC>MAD OOESUGOO http://purl.org/net/SergeStinckwich oooooo Smalltalkers do: [:it | All with: Class, (And love: it)] \ / ##
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
squeak-fr@lists.squeakfoundation.org