メンバ変数とプロシージャを持つクラスを定義します。
構文
[ Public | Private ] Class className [ As baseClass ]
classBody
End Class
要素
Public | Private
オプション。Public は、このクラスのあるモジュールがロードされているときに、別のモジュールから参照できるように指定します。Private は、クラスがこのモジュール内でしか利用できないように指定します。
既定では、クラスは Private です。
className
クラスの名前です。
baseClass
オプション。このクラスの派生元になる別のクラスの名前です。
classBody
クラスのメンバ宣言と定義です。クラスメンバには、メンバ変数、メンバプロシージャ (関数、サブルーチン、プロパティ)、コンストラクタサブルーチン New、デストラクタサブルーチン Delete を含めることができます。定数をクラスメンバにすることはできません。
使用法
Public キーワードは、クラスのメンバを宣言するときを除いて、アプリケーションオブジェクトのスクリプトに直接記述したり、アプリケーションオブジェクトスクリプトの %Include ファイル内で使用することはできません。Public 宣言は (Globals) で使用してください。
クラスを定義するための規則は次のとおりです。
- クラスは、モジュールのスコープ内でのみ定義します。プロシージャ内や別のクラス内では定義しません。
- クラス名には Object という単語を使用しません。
メンバ変数を宣言するための規則は次のとおりです。
- メンバ変数の変数宣言には、キーワード Dim を付けません。
- 宣言ごとに 1 つだけメンバを宣言します。カンマで区切ったリストを使用して 1 つの宣言で複数のメンバ変数を宣言することはできません。
- 変数宣言にはキーワード Public または Private を使用できます。既定では、メンバ変数は private で、クラス内でしかアクセスできません。
- メンバ変数は Static を使用して宣言できません。
- クラスは、それ自体のインスタンスをメンバにできますが、変数宣言にはキーワード New を使用できません。つまり、変数宣言では、そのクラスのオブジェクトを作成できません。
- LotusScript® キーワードの Public、Private、Static、Sub、Function、Property、Get、Set、New、Delete、Rem は、メンバ変数名として使用しないでください。
メンバプロシージャを宣言するための規則は次のとおりです。
- プロシージャの宣言には、キーワード Public または Private を使用できます。既定では、メンバプロシージャは Public で、クラスの外側からアクセスできます。
- メンバプロシージャを Static を使用して宣言することはできません。
- LotusScript のキーワードは、すべてプロシージャ名として使用できます。New と Delete という名前は、それぞれクラスコンストラクタとデストラクタのサブルーチンに名前を与えるときにだけ使用します。
クラスメンバを参照するための規則は次のとおりです。
- クラスのメンバ参照には、objName.memberName という表記を使用します。この場合、memberName は、オブジェクト参照変数 objName のクラス内で定義されたクラスメンバを識別します。
- キーワード Me を使用すると、メンバプロシージャの中からオブジェクト自体を参照できます。例えば、Me.textColor は、このクラスのインスタンスの textColor メンバに現在代入されている値を参照します。
- クラスメンバに LotusScript のキーワードを使用して名前を与えるときは、キーワード Me を使用してメンバサブプログラム内のメンバを参照しなければなりません。
- 派生クラスのメソッドで、ベースクラスのメソッドを上書きできます。上書きするメンバの名前は、無効にされるメンバに一致していなければなりません。派生クラスのプロシージャの中では、baseClassName..memberName という表記を使用して、同じ名前のベースクラスのメンバを参照します。
- With ステートメントを使用し、.memberName という表記を使用して特定のクラスのメンバの作業をします。
オブジェクト (クラスのインスタンス) の作業をするための規則は次のとおりです。
- オブジェクトを作成するには、Dim ステートメントまたは Set ステートメントのオブジェクト参照変数にキーワード New を使用します。
- オブジェクト参照変数の初期値は NOTHING に設定されます。オブジェクト参照変数が NOTHING の値かどうかを調べるには、Is 演算子を使用します。
- Variant 型の変数の場合、変数の値としてオブジェクト参照を定義することができます。Variant 型の変数の内容がオブジェクト参照かどうかを調べるには、IsObject 関数を使用します。
- オブジェクトを削除するには Delete ステートメントを使用します。オブジェクトを参照する変数の値は NOTHING に設定されます。
クラスの定義には、New という名前のコンストラクタサブルーチンの定義を含めることができます。定義が存在する場合、そのクラスのオブジェクトが作成されるたびに、このサブルーチンが呼び出されます。
クラスの定義には、Delete という名前のデストラクタサブルーチンの定義を含めることができます。定義が存在する場合、そのクラスのオブジェクトが削除されるたびに、このサブルーチンが呼び出されます。
例