Rexx-object-oriented
Rexx-オブジェクト指向
環境の章に従ってooRexxをインストールすると、クラスとオブジェクトを操作することもできます。 以下のコードはすべて、ooRexxインタープリターで実行する必要があることに注意してください。 通常のRexxインタープリターは、このオブジェクト指向コードを実行できません。
クラスとメソッドの宣言
クラスは、次の構文宣言で定義されます。
構文
クラスのメソッドは、次の構文宣言で定義されます。
構文
ここで、 methodname はメソッドに付けられた名前です。
クラスのプロパティは、以下の構文宣言で定義されます。
構文
例
以下は、Rexxのクラスの例です。
上記のプログラムについて、以下の点に注意する必要があります。
- クラスの名前は学生です。
- クラスには、StudentIDとStudentNameの2つのプロパティがあります。
ゲッターおよびセッターメソッド
GetterメソッドとSetterメソッドは、プロパティの値を自動的に設定および取得するために使用されます。 Rexxでは、属性キーワードを使用してプロパティを宣言すると、getterメソッドとsetterメソッドが既に配置されています。
例
上記の例では、StudentIdおよびStudentNameにGetterおよびSetterメソッドがあります。
それらの使用方法の例を、次のプログラムに示します。
上記のプログラムの出力は次のようになります。
インスタンスメソッド
- 〜new演算子*を介して、クラスからオブジェクトを作成できます。 クラスのメソッドは、次の方法で呼び出すことができます。
例
次の例は、クラスからオブジェクトを作成する方法と、それぞれのメソッドを呼び出す方法を示しています。
上記のプログラムの出力は次のようになります。
複数のオブジェクトを作成する
クラスの複数のオブジェクトを作成することもできます。 次の例は、これを実現する方法を示しています。
ここでは、3つのオブジェクト(st、st1、st2)を作成し、それに応じてインスタンスメンバーとインスタンスメソッドを呼び出しています。
複数のオブジェクトを作成する方法の例を見てみましょう。
例
上記のプログラムの出力は次のようになります。
継承
継承は、あるクラスが別のクラスのプロパティ(メソッドとフィールド)を取得するプロセスとして定義できます。 継承を使用すると、情報は階層順に管理可能になります。
他のプロパティを継承するクラスは*サブクラス*(派生クラス、子クラス)と呼ばれ、プロパティが継承されるクラスは*スーパークラス*(ベースクラス、親クラス)と呼ばれます。
Rexxの継承の例を見てみましょう。 次の例では、 Person というクラスを作成しています。 そこから、サブクラスキーワードを使用して、* Studentクラス*を Person のサブクラスとして作成します。
例
上記のプログラムの出力は次のようになります。