Variables définies dans une déclaration Method () dans un Define Class () ?Dans Function(), vous pouvez déclarer des variables locales. Mais lorsqu'il s'agit d'un Method () à l'intérieur d'un Define Class (), il ne semble pas y avoir de disposition pour les variables locales transitoires portées à l'intérieur de la méthode.
Cela signifie-t-il que toutes les variables déclarées dans une méthode () sont persistantes et visibles en dehors de la classe ?
Re : Variables définies dans une déclaration Method () dans un Define Class () ?J'avoue avoir répondu avant sans revoir JSL Classes. Je ne les ai pas étudiés ni utilisés depuis leur introduction. Je m'excuse pour toute confusion.
Comme l'indique la documentation, il n'y a pas de membres privés, de méthodes ou de fonctions. Je ne trouve aucun moyen de déclarer les propriétés privées.
Non, JMP ne fournit pas de variables de classe et d'instance distinctes.
Re : Variables définies dans une déclaration Method () dans un Define Class () ?Je me rapproche de la compréhension de cela, mais pouvez-vous m'aider avec quelques autres choses ?
(1) Variable de classe vs variable d'instance : JSL a-t-il cette distinction, et si oui, comment puis-je faire une variable l'une ou l'autre ?
(2) Variables d'instance privées vs publiques : JSL a-t-il cette distinction, et si oui, comment puis-je rendre une variable privée ?
Concernant #2, je peux certainement implémenter Get/Set sur des variables, mais je n'arrive pas à comprendre comment empêcher l'accès direct à la variable.
Il se peut que le modèle de classe JSL n'ait pas ces distinctions, ce qui est bien, mais j'essaie simplement de clarifier cela dans mon esprit.
Re : Variables définies dans une déclaration Method () dans un Define Class () ?D'accord, je comprends. J'ai une situation où certaines expressions attribuent des variables locales de méthode à des calculs impliquant des variables au niveau de la classe. Je pense que si je devais utiliser Local(), je préfixerais simplement toutes les variables de niveau classe à l'intérieur de la clause Local avec "this:"
Mais de toute façon, d'après mon expérience, cela n'est peut-être pas nécessaire de toute façon. J'essayais juste d'avoir une idée de ce qui était visible où.Re : Variables définies dans une déclaration Method () dans un Define Class () ?Non, je voulais dire utiliser Local() dans la méthode.
Je pense que vous avez répondu à votre propre question : utilisez les méthodes getter et setter pour gérer l'accès et le contrôle des propriétés d'instance ou de classe.
Re : Variables définies dans une déclaration Method () dans un Define Class () ?Peut-être. Lorsque j'encapsule le contenu de la méthode dans Local(), cela échoue - mais je pourrais essayer un espace de noms qualifiant toutes les variables au niveau de la classe.
En fait, j'ai fait une expérience (j'aurais dû essayer avant de demander), et il semble que les variables déclarées à l'intérieur d'une méthode ne soient pas référençables à l'extérieur, même avec un préfixe d'espace de noms. Il me semble donc qu'ils sont automatiquement locaux à la méthode, sauf indication contraire.
Sur une question plus large, que feriez-vous pour avoir l'équivalent d'une variable "privée". Supposons que vous souhaitiez rendre une variable de classe accessible uniquement via une méthode Get ?Re : Variables définies dans une déclaration Method () dans un Define Class () ?Ne pouvez-vous pas utiliser la fonction Local() dans une méthode ?