Variablen, die in einer Method()-Deklaration innerhalb einer Define Class() definiert sind?In Function() können Sie Variablen lokal deklarieren. Aber wenn es um eine Method() innerhalb einer Define Class() geht, scheint es keine Bestimmung für transiente lokale Variablen zu geben, die innerhalb der Methode liegen.
Bedeutet das, dass alle innerhalb einer Method() deklarierten Variablen persistent und außerhalb der Klasse sichtbar sind?
Betreff: Variablen, die in einer Method()-Deklaration innerhalb einer Define Class() definiert sind?Ich gebe zu, dass ich zuvor geantwortet habe, ohne mir die JSL-Klassen noch einmal anzusehen. Ich habe sie nicht studiert oder benutzt, seit sie zum ersten Mal eingeführt wurden. Ich entschuldige mich für etwaige Verwirrung.
Wie in der Dokumentation angegeben, gibt es keine privaten Mitglieder, Methoden oder Funktionen. Ich finde keine Möglichkeit, private Eigenschaften zu deklarieren.
Nein, JMP stellt keine separaten Klassen- und Instanzvariablen bereit.
Betreff: Variablen, die in einer Method()-Deklaration innerhalb einer Define Class() definiert sind?Ich komme dem Verständnis näher, aber können Sie mir bei ein paar weiteren Dingen helfen?
(1) Klassenvariable vs. Instanzvariable: Hat JSL diese Unterscheidung, und wenn ja, wie mache ich eine Variable in die eine oder andere?
(2) Private vs. öffentliche Instanzvariablen: Hat JSL diese Unterscheidung, und wenn ja, wie mache ich eine Variable privat?
In Bezug auf # 2 kann ich sicherlich Get/Set für Variablen implementieren, aber ich kann nicht herausfinden, wie ich den direkten Zugriff auf die Variable verhindern kann.
Es kann sein, dass das JSL-Klassenmodell diese Unterscheidungen nicht hat, was in Ordnung ist, aber ich versuche nur, mir das klar zu machen.
Betreff: Variablen, die in einer Method()-Deklaration innerhalb einer Define Class() definiert sind?Richtig, ich verstehe. Ich habe eine Situation, in der einige Ausdrücke methodenlokale Variablen zu Berechnungen mit Variablen auf Klassenebene zuweisen. Ich denke, wenn ich Local() verwenden würde, würde ich einfach allen Variablen auf Klassenebene in der Local-Klausel "this:" voranstellen.
Aber wie auch immer, basierend auf meinem Experiment ist dies möglicherweise sowieso nicht notwendig. Ich habe nur versucht, ein Gefühl dafür zu bekommen, was wo sichtbar ist.Betreff: Variablen, die in einer Method()-Deklaration innerhalb einer Define Class() definiert sind?Nein, ich meinte die Verwendung von Local() innerhalb der Methode.
Ich denke, Sie haben Ihre eigene Frage beantwortet: Verwenden Sie Getter- und Setter-Methoden, um den Zugriff und die Steuerung von Instanz- oder Klasseneigenschaften zu verwalten.
Betreff: Variablen, die in einer Method()-Deklaration innerhalb einer Define Class() definiert sind?Vielleicht. Wenn ich den Inhalt der Methode in Local() umschließe, schlägt dies fehl – aber ich könnte versuchen, den Namensraum zu qualifizieren, der alle Variablen auf Klassenebene qualifiziert.
Eigentlich habe ich ein Experiment durchgeführt (hätte es vor der Frage versuchen sollen), und es sieht so aus, als ob Variablen, die innerhalb einer Methode deklariert wurden, außerhalb nicht referenzierbar sind, selbst mit Namespace-Präfix. Für mich sieht es also so aus, als wären sie automatisch lokal für die Methode, sofern nicht anders angegeben.
Bei einer allgemeineren Frage, was würden Sie tun, um das Äquivalent einer "privaten" Variablen zu haben. Angenommen, Sie wollten eine Klassenvariable nur über eine Get-Methode zugänglich machen?Betreff: Variablen, die in einer Method()-Deklaration innerhalb einer Define Class() definiert sind?Können Sie die Funktion Local() nicht innerhalb einer Methode verwenden?