[Squeak-fr] variables de classes et variables d'instances
Stephane Ducasse
squeak-fr@lists.squeakfoundation.org
Mon, 18 Nov 2002 12:29:33 +0100
Salut
> Dans le cadre de la programmation des AVL, j'ai un probleme quant a=
la
> distinction entre classe et instance:
>
> En effet, je voudrais creer une methode de classe 'new' mais le=
=20
> probleme c'est
> qu'elle ne peut implementer qu'une variable de classe
Une methode n'implemente pas de variables, elle y accede
> alors que je voudrais
> qu'elle agissent sur une variable d'instance afin d'etre manipulabl=
e=20
> par des
> methodes d'instance
Dans ce cas las tu definis sur la partie instance une methode=20
eventuellement privee
appellee setMaVariable que tu appelles depuis new
MonTruc class>>newWith: aBiduble
=09newInstance :=3D super new.
=09newInstance setBidule: aBidule.
=09^ newInstance
=09
Depuis les methodes d'instances tu pexu acceder a une classVariable.=
=20
Ton principale
critere entre instance variable et classVariable doit etre si la donn=
ee=20
est privee
a une instance ou partage a un ensemble d'instances. les ClassVariabl=
es=20
devraient etre renommees comme
en VisualWorks SharedVariables.
> Des lors est il possible qu'une methode de classe interagissent sur=
une
> variable d'instance ???
Les variables d'instance sont privees. Cela veut dire que la metaclas=
s=20
MonTruc class
qui est en fait une classe distincte ne peut pas acceder directement=
=20
aux variables d'une instance.
En fait conceptuellement cela serait aussi difficile car on ne sait p=
as=20
de quelle instance on
parlerait.
> Sinon quelqu'un pourrait-il m'expliquer la difference entre les de=
ux,=20
> ainsi
> que le role des variables de classe qui est encore floue a mes yeux=
.
tu devrais lire mon livre :)
ou les livres gratuits sur ma page web comme Smalltalk by Example qui=
=20
est excellent.
> D'avance merci.
> _______________________________________________
> 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