[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