20.2.4 オブジェクトプロパティ
オブジェクトプロパティとは,オブジェクトが持つ属性の中で,外部からでもメソッドを呼び起こさず,直接参照または更新できると宣言されたデータ項目のことです。また,オブジェクトプロパティの参照および更新には,GETプロパティメソッド,SETプロパティメソッドを使用します。また,プロパティメソッドには,暗黙的なプロパティメソッドと明示的なプロパティメソッドとがあります。
オブジェクトプロパティの詳細についてはマニュアル「COBOL2002 言語 標準仕様編」 「4.3.2(8) オブジェクトプロパティ」を参照してください。
- 〈この項の構成〉
(1) 明示的なプロパティメソッド
- GETプロパティメソッド
-
メソッド名段落にGET PROPERTYを指定すると,そのメソッドは,GETプロパティメソッドとなります。
GETプロパティメソッドは,オブジェクトプロパティが送り出し側作用対象として参照されたとき,自動的に呼び起こされます。このとき,GETプロパティメソッドのRETURNINGに指定された項目が返却されます。
- SETプロパティメソッド
-
メソッド名段落にSET PROPERTYを指定すると,そのメソッドは,SETプロパティメソッドとなります。
SETプロパティメソッドは,オブジェクトプロパティが受け取り側作用対象として参照されたとき,自動的に呼び起こされます。このとき,引数としてSETプロパティメソッドに値が渡されます。
記述例を,次に示します。
-
プログラムMAIN-Aからオブジェクトプロパティを送り出し側作用対象として参照します。これによって,GETプロパティメソッドP-1が呼び起こされます。
P-1は,ファクトリデータGET-DATAを返却項目RET-DATAに設定し,呼び出し元へ制御を戻します。その結果,1.のW-1には,GET-DATAと同じ値が転記されます。
-
プログラムMAIN-Aからオブジェクトプロパティを受け取り側作用対象として参照します。これによって,SETプロパティメソッドP-1が呼び起こされます。
このとき,2.のMOVE文では,X-1の値をSETプロパティメソッドP-1の引数に指定して呼び起こします。P-1は,引数として渡されたPARA-DATAをファクトリデータSET-DATAに転記します。この結果,2.のMOVE文のX-1の値がSET-DATAに設定されます。
明示的なプロパティメソッドの詳細については,マニュアル「COBOL2002 言語 標準仕様編」 「7.6 メソッド名段落(METHOD-ID)」を参照してください。
(2) 暗黙的なプロパティメソッド
ファクトリ定義およびインスタンス定義のデータ記述項にPROPERTY句を指定すると,そのデータ項目は,オブジェクトプロパティとして参照できます。PROPERTY句が指定されたデータ項目には,暗黙的にGETプロパティメソッドとSETプロパティメソッドが生成されます。
記述例を,次に示します。
-
プログラムMAIN-Aからオブジェクトプロパティを送り出し側作用対象として参照します。これによって,暗黙的なGETプロパティメソッドが呼び起こされます。
暗黙的なGETプロパティメソッドは,ファクトリデータP-1の値を取得して返却します。その結果,1.のW-1には,P-1と同じ値が転記されます。
-
プログラムMAIN-Aからオブジェクトプロパティを受け取り側作用対象として参照します。これによって,暗黙的なSETプロパティメソッドが呼び起こされ,2.のMOVE文のX-1の値がファクトリデータP-1に設定されます。
暗黙的なプロパティメソッドの場合,オブジェクトプロパティの値がそのままファクトリデータおよびインスタンスデータに設定されます。これに対して,明示的なプロパティメソッドの場合,オブジェクトプロパティの値を加工してファクトリデータおよびインスタンスデータに設定できます。
暗黙的なプロパティメソッドの詳細については,マニュアル「COBOL2002 言語 標準仕様編」 「9.16.56 PROPERTY句」を参照してください。