Du brauchst hier kein DIM mehr.
Wie von Thomas richtig gesagt, führt das dim sogar zu einem "Variable Shadowing", d.h. du legst eine lokale (d.h. lokal im Konstruktor
deklarierte Variable an, die die Instanzvariable überdeckt. Solche dinge haben mich mal sehr verwirrt.
In Lotusscript kann man glaub ich Instanzvariablen nicht direkt deklarieren und instantiieren (was in Java geht). In nicht-OO Lotusscript geht es auch (wie du gezeigt hast).
private session = new notessession() ' does not work
deshalb:
private session as NotesSession 'deklarieren
sub new()
Set session = new NotesSession() ' instantiieren.
end sub
Traditionell war es der Sinn von KOnstruktoren deklarierte Instanzvariablen zu initialisieren.
ESOTERISCH_START
Mit heutigen auf Modularität ausgerichteter OO Praxis (sehr starK: Inversion Of control) hat sich das explizite initialisieren von Variablen in Konstruktoren als unmodular herausgestellt. Das ist aber ein ganz anderer Gedanke.
ESOTERISCH_END
Sofern du dir in deinem Kopf Klarheit bzgl. der Begrifflichkeit von:
- Deklarieren
- Initialisieren
schaffst, dürfte es kein problem mehr machen.