Domino 9 und frühere Versionen > ND6: Entwicklung
eigene Klasse zeigt private Variablen
MadMetzger:
Vor allen Dingen ist diese Tatsache eine große Erleichterung beim Debuggen... Stell dir mal vor, du könntest beim Debuggen nicht in die Struktur der Klassen schauen... Neee... das wäre überhaupt nicht gut.
bikerboy:
also alles in Ordnung ?? Variablen richtig deklariert.
Nur um mir die Arbeit zu helfen, hat IBM gesagt, er sieht alles ?
MadMetzger:
Genau, alles in Ordnung so. Aber das ist bestimmt nicht nur, um das Debuggen zu erleichtern, wurde das aber bestimmt nicht so gemacht. Aber zumindest ist die Sichtbarkeit an der Stelle für mich nur ein Hilfsmittel. Und im Grunde siehst du möglicherweise nicht einmal die "tatsächlichen" Attribute, sondern siehst andere Objekte im Debugger, die sich so darstellen, dass sie dir die innere Struktur der vorhandenen Objekte aufbereiten.
flaite:
Die Zugriffs-Modifier regeln die Sichtbarkeit von.
Wenn ich mich recht erinnere sind private Members in Notes Klassen aus allen Funktionen, Methoden, derselben Scriptbibliothek, Agent, etc. sichtbar.
Das ist eine höhere Sichtbarkeit als etwa private in Java oder C++.
Die Zugriffs-Modifizierer sind ein Hilfsmittel, um Code übersichtlich zu strukturieren. Kein Sicherheitsfeature.
In Java sind private Methoden und Properties tatsächlich nur aus einem Objekt dieser Klasse sichtbar. Debugger zeigen es trotzdem an. Man kann nämlich mittels ein paar "Tricks" (introspection, reflection) die private members sozusagen auf public umschiessen. Genau so ist das auch in den Java-Debuggern implementiert.
Der Notes-Debugger zeigt keine Properties an. Sowas würde er natürlich anzeigen.
--- Code: ---Public strComment As String
--- Ende Code ---
Nur eben keine Properties.
Wenn du in einer Script-Bibliothek eine Klasse hast, kannst du aus z.B. Agenten (oder andere ScriptLibraries), die diese Scriptbibliothek benutzen, nicht auf die privaten Member der Klasse direkt zugreifen.
Aber aus einer anderen Klasse oder Funktion dieser Scriptbibliothek schon. Private in Notes entspricht etwa "package-private" in Java (wo kein Zugriffsmodifier steht) nicht private.
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln