• 検索結果がありません。

クラスの利用方法

ドキュメント内 NetCOBOL for .NET 応用編 (ページ 70-76)

第3章   NetCOBOL for .NETの特徴

3.3 クラスの利用方法

3.3.1 クラスを利用する流れ 

N e t C O B O L f o r . N E Tで は 、 ク ラ ス を 作 成 す る よ り も 、 外 部 の ク ラ ス

(. N E T F r a m e w o r kや. N E Tの 他 言 語 で 作 成 し た ク ラ ス ) を 利 用 す る ケ ー ス が 多 い と い え ま す 。 外 部 の ク ラ ス を 利 用 す る た め に は 、C O B O Lの オ ブ ジ ェ ク ト 指 向 プ ロ グ ラ ミ ン グ 機 能 の 約 束 事 に 沿 っ て 手 続 き を 作 成 す る 必 要 が あ り ま す 。 こ こ で は 、 外 部 の ク ラ ス を 利 用 す る 流 れ を 説 明 し ま す 。

クラスとプロパティの宣言(環境部のREPOSITORY段落) クラスとプロパティの宣言(環境部のREPOSITORY段落)

オブジェクト参照項目の定義(データ部) オブジェクト参照項目の定義(データ部)

オブジェクトの作成(手続き部) オブジェクトの作成(手続き部)

メソッド/プロパティの利用(手続き部) メソッド/プロパティの利用(手続き部)

アセンブリ参照設定(プロジェクト) アセンブリ参照設定(プロジェクト)

図 3 . 3 . 1   ク ラ ス を 利 用 す る 流 れ  

ア セ ン ブ リ の 参 照 設 定  

ク ラ ス は 、 ビ ル ド 時 に ク ラ ス の 利 用 に 必 要 な 様 々 な 情 報 と と も に 、 ア セ ン ブ リ (D L Lな ど ) と し て 作 成 さ れ ま す 。 ク ラ ス を プ ロ ジ ェ ク ト か ら 利 用 で き る よ う に す る た め に は 、 利 用 し た い ク ラ ス が 格 納 さ れ た ア セ ン ブ リ を プ ロ ジ ェ ク ト に 「 参 照 設 定 」 す る 必 要 が あ り ま す 。 参 照 設 定 は 、 開 発 環 境 上 (I D E) で 、G U I操 作 で 行 い ま す 。

ま た 、 ア セ ン ブ リ の 参 照 設 定 は 、 プ ロ ジ ェ ク ト 単 位 で 必 要 と な り ま す 。

ク ラ ス と プ ロ パ テ ィ な ど の 宣 言  

プ ロ ジ ェ ク ト で 参 照 設 定 さ れ た ア セ ン ブ リ 内 の ク ラ ス は 、 同 じ プ ロ ジ ェ ク ト のC O B O Lプ ロ グ ラ ム か ら 利 用 で き る よ う に な り ま す 。C O B O L プ ロ グ ラ ム か ら ク ラ ス を 利 用 す る 最 初 の ス テ ッ プ と し て 、 環 境 部 の リ ポ ジ ト リ 段 落 で ク ラ ス の 外 部 名 と 内 部 名 の 関 連 付 け を 行 い ま す 。 こ の と き 、 ク ラ ス の 内 部 名 を 宣 言 し 、C O B O Lプ ロ グ ラ ム で は ク ラ ス の 内 部 名 を 指 定 す る こ と に な り ま す 。 ま た 、 同 時 に 手 続 き 部 で 使 用 す る プ ロ パ テ ィ な ど も 、 外 部 名 と 内 部 名 の 関 連 付 け を 行 い ま す 。

オ ブ ジ ェ ク ト 参 照 項 目 の 定 義  

ク ラ ス の イ ン ス タ ン ス で あ る オ ブ ジ ェ ク ト を 格 納 す る た め の 「 箱 」 を 変 数 と し て 作 成 す る 必 要 が あ り ま す 。 変 数 の 型 は 「 オ ブ ジ ェ ク ト 参 照 項 目 」 と な り ま す 。 デ ー タ 部 で 宣 言 し ま す 。

オ ブ ジ ェ ク ト の 作 成  

手 続 き 部 で ク ラ ス を 利 用 す る 場 合 、 ク ラ ス の イ ン ス タ ン ス を 作 成 し 、 オ ブ ジ ェ ク ト に 格 納 す る 必 要 が あ り ま す 。 ク ラ ス のN E W特 殊 メ ソ ッ ド を 利 用 し て 、 ク ラ ス か ら 実 際 の オ ブ ジ ェ ク ト を 作 成 し ま す 。

メ ソ ッ ド / プ ロ パ テ ィ の 利 用  

オ ブ ジ ェ ク ト が 作 成 で き れ ば 、 メ ソ ッ ド と プ ロ パ テ ィ を 利 用 す る こ と が で き ま す 。 メ ソ ッ ド 呼 出 し に はI N V O K E文 や メ ソ ッ ド 行 内 呼 出 し 、 プ ロ パ テ ィ の 設 定 や 取 得 に はM O V E文 やS E T文 を 利 用 し ま す 。

3.3.2 アセンブリの参照設定 

プ ロ ジ ェ ク ト ( ソ リ ュ ー シ ョ ン ) の 編 集 画 面 の ソ リ ュ ー シ ョ ン エ ク ス プ ロ ー ラ で 、 目 的 の ク ラ ス が 含 ま れ る ア セ ン ブ リ を 参 照 設 定 し ま す ( プ ロ ジ ェ ク ト を 作 成 す る 際 に テ ン プ レ ー ト か ら 選 択 す る と 、 い く つ か の ア セ ン ブ リ が デ フ ォ ル ト で 参 照 設 定 さ れ て い ま す ) 。

他 の. N E T対 応 言 語 で 作 成 さ れ た ア セ ン ブ リ を 参 照 設 定 に 追 加 す る こ

と が で き ま す 。 つ ま り 、V BやC #な ど の 言 語 で 作 成 さ れ た ク ラ ス を 利 用 す る こ と が で き ま す 。

[参照設定 ]

を右クリッ ク して

[

追加

]

する

図   3 . 3 . 2   ア セ ン ブ リ の 参 照 設 定  

3.3.3 クラス名やプロパティ名などの宣言 

環 境 部 の リ ポ ジ ト リ 段 落 で 、 使 用 す る ク ラ ス や プ ロ パ テ ィ の 内 部 名 を 宣 言 し ま す 。

具 体 的 に は 、C L A S S句 、P R O P E RT Y句 で 、 ク ラ ス の 内 部 名 と 外 部 名 の 宣 言(対 応 付 け)を 行 い ま す 。 基 本 的 に 、 ク ラ ス や プ ロ パ テ ィ は 、

R E P O S I T O RY段 落 で 宣 言 し な い と 使 用 す る こ と は で き ま せ ん 。

ま た 、 画 面 (Wi n d o w sフ ォ ー ム 、We bフ ォ ー ム ) を 使 用 す る ア プ リ ケ ー シ ョ ン な ど で は 、N e t C O B O L f o r . N E Tが 自 動 的 に ク ラ ス や プ ロ パ テ ィ の 宣 言 を 書 き 込 む こ と も あ り ま す 。

・・・・・・

REPOSITORY.

CLASS CLASS-DATAROW AS "System.Data.DataRow"

CLASS CLASS-DATAROWS AS "System.Data.DataRowCollection"

CLASS CLASS-DATASET AS "System.Data.DataSet"

CLASS CLASS-DATATABLE AS "System.Data.DataTable"

CLASS CLASS-DATATABLES AS "System.Data.DataTableCollection"

CLASS CLASS-CONNECTION AS "System.Data.SqlClient.SqlConnection"

PROPERTY PROP-DATAMEMBER AS "DataMember"

PROPERTY PROP-DATASOURCE AS "DataSource"

・・・・・

CLASS クラスの内部名AS "クラス名"

PROPERTY プロパティの内部名AS "プロパティ名"

(例)

図 3 . 3 . 3   ク ラ ス の 登 録 と プ ロ パ テ ィ の 登 録  

ク ラ ス 指 定 子  

キ ー ワ ー ド ク ラ ス 指 定 子 で ク ラ ス 名 の 宣 言 を 行 い ま す 。 こ こ で 指 定 す る ク ラ ス の 内 部 名 は 、 こ の プ ロ グ ラ ム ( ク ラ ス ) 内 で 有 効 と な り ま す 。 ク ラ ス 名 ( 外 部 ク ラ ス 名 ) は 、 名 前 空 間 を 含 む 完 全 名 を 指 定 し ま す 。

プ ロ パ テ ィ 指 定 子  

利 用 す る プ ロ パ テ ィ の 内 部 名 を 宣 言 し ま す 。 ク ラ ス 内 の す べ て の プ ロ パ テ ィ を 登 録 す る 必 要 は あ り ま せ ん 。 ま た 、 プ ロ パ テ ィ は ク ラ ス に 依 存 せ ず 指 定 で き ま す の で 、 プ ロ パ テ ィ 名 が 同 じ で あ れ ば 、 ど の ク ラ ス の プ ロ パ テ ィ に も 使 用 す る こ と が で き ま す

そ の 他  

リ ポ ジ ト リ 段 落 で は 、 ク ラ ス 指 定 子 や プ ロ パ テ ィ 指 定 子 以 外 に も 、 イ ン タ フ ェ ー ス 名 を 宣 言 す る イ ン タ フ ェ ー ス 指 定 子 やE N U M( 列 挙 型 ) 名 を 宣 言 す るE N U M指 定 子 な ど を 記 述 す る 場 合 が あ り ま す 。

※ 既 定 で は 、 大 文 字 小 文 字 を 区 別 し ま す 。

3.3.4 オブジェクト参照項目の定義と 

      オブジェクトインスタンスの作成 

ク ラ ス 名 を 宣 言 し た あ と の 手 続 き と し て 、 ク ラ ス を 格 納 す る た め の 箱 を 用 意 す る 必 要 が あ り ま す 。 こ の 箱 を 用 意 す る 手 続 き を 「 オ ブ ジ ェ ク ト 参 照 項 目 を 定 義 す る 」 と 呼 び ま す 。 オ ブ ジ ェ ク ト 参 照 項 目 の 定 義 は 、 デ ー タ 部 でO B J E C T R E F E R E N C E句 を 使 用 し て 行 い ま す 。

オ ブ ジ ェ ク ト 参 照 項 目 の 定 義 で 、 オ ブ ジ ェ ク ト ( ク ラ ス ) へ の 参 照 が 定 義 さ れ た 変 数 に 、 オ ブ ジ ェ ク ト イ ン ス タ ン ス を 作 成 す る こ と に よ り 、 プ ロ グ ラ ム か ら 、 メ ソ ッ ド や デ ー タ C プ ロ パ テ ィ ) を 使 用 す る こ と が で き る よ う に な り ま す 。

ク ラ ス ( オ ブ ジ ェ ク ト 参 照 が 行 わ れ た ク ラ ス ) か ら オ ブ ジ ェ ク ト イ ン ス タ ン ス を 作 成 す る に は 、N E Wメ ソ ッ ド を 利 用 し ま す 。

・・・・・・

DATA DIVISION.

WORKING-STORAGE SECTION.

01 strConnection  OBJECT REFERENCE CLASS-STRING.

01 connectDB      OBJECT REFERENCE CLASS-CONNECTION.

・・・・・

レベル オブジェクト変数名 OBJECT REFERENCE クラスの内部名 (例)

オブジェクト参照

.

PROCEDURE DIVISION.

・・・・・

INVOKE CLASS-CONNECTION "NEW" USING strConnection RETURNING connectDB.

INVOKE クラスの内部名"NEW" RETURNING オブジェクト変数名 (例)

オブジェクトインスタンスの作成

図 3 . 3 . 4   オ ブ ジ ェ ク ト 参 照 項 目 の 定 義 と オ ブ ジ ェ ク ト イ ン ス タ ン ス の 作 成  

正 確 に は 、 次 の よ う に な り ま す 。

「 オ ブ ジ ェ ク ト を 作 成 す る に は 、 コ ン ス ト ラ ク タ を 呼 び 出 し ま す 。 コ ン ス ト ラ ク タ は 、 実 際 に は メ ソ ッ ド で は あ り ま せ ん が 、 形 式 上 は 型 の

" N E W "静 的 メ ソ ッ ド の よ う に 記 述 し ま す 。N e t C O B O L f o r . N E Tコ ン パ イ ラ は 、 こ の 構 文 を 特 別 扱 い し て コ ン ス ト ラ ク タ 呼 出 し に 翻 訳 し ま す 。

R E T U R N I N G指 定 に 記 述 さ れ た デ ー タ 項 目 に は 、 作 成 さ れ た オ ブ ジ ェ ク

ト へ の 参 照 が 格 納 さ れ ま す 。 」

ドキュメント内 NetCOBOL for .NET 応用編 (ページ 70-76)