オブジェクトの作成

非静的メソッドを呼び出すには、オブジェクトが必要です。オブジェクトのクラスは、メソッドを含んでいるクラスと同じでなければなりません。 使用可能なオブジェクトが既にあっても、新たなオブジェクトをインスタンス化する必要がある場合があります。 これはクラス・コンストラクターを使用して行ないます。クラス・コンストラクターは静的メソッドでもインスタンス・メソッドでもありません。 したがってクラス・コンストラクターにはインスタンス・パラメーターは必要ありません。特別なメソッド名である *CONSTRUCTOR が、コンストラクターのプロトタイピングを行なう時に使用されます。

例えば、クラス BigDecimal には float パラメーターを受け取るコンストラクターがあります。

このコンストラクターは次のようにプロトタイプされます。
D bdcreate        PR              O   EXTPROC(*JAVA:
D                                      'java.math.BigDecimal':
D                                      *CONSTRUCTOR)
D    dnum                        4F   VALUE

パラメーターは Java™ float データ・タイプにマップされるため、値による受け渡しをする必要があることに注意してください。

このコンストラクターは次のように呼び出します。

D bd              S               O   CLASS(*JAVA:
D                                           'java.math.BigDecimal')
 /free
    bd = bdcreate(5.2E9);
 /end-free

戻されるオブジェクトのクラスはコンストラクター自身のクラスと同じであるため、 CLASS キーワードはコンストラクターの場合には冗長になりますが、コーディングしてもかまいません。