第3章 NetCOBOL for .NETの特徴
3.4 オブジェクト指向プログラミングの文法
3.4.3 配列とコレクションの利用
. N e t F r a m e w o r kで は 、C O B O Lの 表( O C C U R S句)と 似 て 異 な る 概 念 に 配 列 と コ レ ク シ ョ ン が あ り ま す 。
( 1 ) 配 列
配 列 は 、 イ ン デ ッ ク ス を 使 用 し て ア ク セ ス さ れ る 、 複 数 の 同 じ 型 の 変 数 を 含 む デ ー タ 構 造 で す 。 そ の 機 能 を 考 え る と 、 配 列 はC O B O Lの 表 に よ く 似 て い ま す 。 し か し 、. N e t F r a m e w o r kの 配 列 は 単 な る 表 で は な く 、 配 列 自 体 が オ ブ ジ ェ ク ト と な り ま す 。 そ の た め 、 配 列 を 利 用 す る に は 、 配 列 の イ ン ス タ ン ス 化 な ど 「3 . 3 . 4 オ ブ ジ ェ ク ト 参 照 項 目 の 定 義 と オ ブ ジ ェ ク ト イ ン ス タ ン ス の 作 成 」 で 述 べ た よ う な 、 通 常 の オ ブ ジ ェ ク ト と 同 様 の 記 述 が 必 要 と な り ま す 。 ま た 、 配 列 の 要 素 に ア ク セ ス す る 場 合 、 取 得 に はG e tメ ソ ッ ド 、 設 定 に はS e tメ ソ ッ ド を 用 い ま す 。C O B O Lの 表 の 添 字 は 1 か ら 始 ま り ま す が 、 配 列 の イ ン デ ッ ク ス は 0 か ら 始 ま る こ と に 注 意 し て く だ さ い 。
実 際 に 配 列 を 利 用 す る 例 は 、 次 の よ う に な り ま す 。
S y s t e m . S t r i n g オ ブ ジ ェ ク ト の 配 列 を 利 用 す る 例
R E P O S I T O R Y .
C L A S S C L A S S - S T R I N G A S " S y s t e m . S t r i n g " . C L A S S A R R A Y - S T R I N G A S " S y s t e m . S t r i n g [ ] " .
C L A S S A R R A Y 2 - C L A S S - S T R I N G A S " S y s t e m . S t r i n g [ , ] " .
・ ・ ・ ・
W O R K I N G - S T O R A G E S E C T I O N .
0 1 W K - S T R I N G O B J E C T R E F E R E N C E C L A S S - S T R I N G . 0 1 W K - A R R A Y O B J E C T R E F E R E N C E A R R A Y - S T R I N G . 0 1 W K - A R R A Y 2 O B J E C T R E F E R E N C E A R R A Y 2 - S T R I N G . . ・ ・ ・ ・ ・
P R O C E D U R E D I V I S I O N .
* > 8個 の 要 素 を 持 つ 1 次 元 文 字 列 配 列 オ ブ ジ ェ ク ト 作 成 I N V O K E A R R A Y - S T R I N G " N E W " U S I N G 8
R E T U R N I N G W K - A R R A Y .
* > 4×8個 の 要 素 を 持 つ 2 次 元 文 字 列 配 列 オ ブ ジ ェ ク ト 作 成 I N V O K E A R R A Y 2 - S T R I N G " N E W " U S I N G 4 8
R E T U R N I N G W K - A R R A Y 2 . . . . .
* >1 次 元 配 列 の 最 初 の 要 素 を 取 得
I N V O K E W K - A R R A Y " G e t " U S I N G 0
R E T U R N I N G W K - S T R I N G .
* >2 次 元 配 列 の 位 置( 1 , 2 )の 要 素 を 設 定
I N V O K E W K - A R R A Y 2 " S e t " U S I N G 1 2 W K - S T R I N G .
( 2 ) コ レ ク シ ョ ン
同 じ ク ラ ス ( オ ブ ジ ェ ク ト ) の 集 ま り を 管 理 す る オ ブ ジ ェ ク ト を 、
「 コ レ ク シ ョ ン 」 と 言 い ま す 。
コ レ ク シ ョ ン か ら 要 素 ( オ ブ ジ ェ ク ト ) を 取 り 出 す に は 、 プ ロ パ テ ィ に イ ン デ ッ ク ス ( 添 字 ) を 指 定 す る イ メ ー ジ と な り ま す 。V Bで は 、 コ レ ク シ ョ ン に イ ン デ ッ ク ス を 指 定 し て 、 オ ブ ジ ェ ク ト を 指 定 す る こ と が で き ま す 。 し か し 、 コ レ ク シ ョ ン に 直 接 イ ン デ ッ ク ス を 指 定 し て オ ブ ジ ェ ク ト を 参 照 す る 文 法 は 、 オ ブ ジ ェ ク トC O B O Lに は 用 意 さ れ て い ま せ ん 。 し た が っ て 、. N E T F r a m e w o r kで は 、 イ ン デ ク サ と 呼 ば れ る 機 能 を 利 用 し て 、 コ レ ク シ ョ ン に イ ン デ ッ ク ス を 指 定 し て 、 要 素 を 取 得 す る た め の 方 法 が 用 意 さ れ て い ま す 。
INVOKE コレクション名 “get_インデクサ”USING インデックスReturning 戻り値 SET 戻り値TO コレクション名:: “get_インデクサ”(インデックス)
MOVE コレクション名:: “get_インデクサ”(インデックス) TO 戻り値
INVOKE コレクション名 “get_インデクサ”USING インデックスReturning 戻り値 SET 戻り値TO コレクション名:: “get_インデクサ”(インデックス)
MOVE コレクション名:: “get_インデクサ”(インデックス) TO 戻り値
オブジェクト(コレクション) WorkSheets
WorkSheetコレクションに、Sheetオブジェクトへのインデクサ として、Itemが定義されている場合
(例)
SET w-WorkSheet TO WorkSheets ::"get_Item" ("Sheet2")
値の取得
・w-WorkSheetオブジェクトにSheet2のSheetオブジェクトを格納 Sheetオブジェクト"Name=Sheet1"
SheetオブジェクトName="Sheet2"
SheetオブジェクトName="Sheet3"
INVOKE コレクション名 “set_インデクサ”USING インデックス 設定値 INVOKE コレクション名 “set_インデクサ”USING インデックス 設定値
インデクサにgetアクセサを利用した 値の取得
インデクサにsetアクセサを利用した 値の設定
図 3 . 4 . 3 コ レ ク シ ョ ン の 利 用
イ ン デ ク サ を 利 用 す る と 、 プ ロ パ テ ィ の 値 を メ ソ ッ ド 形 式 で 呼 び 出 す こ と が で き ま す 。 具 体 的 に は 、 イ ン デ ク サ に 「g e t _」 や 「s e t _」 の 接 頭 辞 を 指 定 し 、 オ ブ ジ ェ ク ト の 取 得 や 設 定 の 「 メ ソ ッ ド 」 と し て 利 用 す る こ と に な り ま す 。
値 ( オ ブ ジ ェ ク ト ) の 取 得
I N V O K E コ レ ク シ ョ ン 名 " g e t ̲イ ン デ ク サ"
U S I N G イ ン デ ッ ク ス R E T U R N I N G 戻 り 値
S E T 戻 り 値 T O
コ レ ク シ ョ ン 名: : " g e t ̲イ ン デ ク サ" (イ ン デ ッ ク ス)
M O V E コ レ ク シ ョ ン 名: : " g e t ̲イ ン デ ク サ" (イ ン デ ッ ク ス) T O 戻 り 値
値 ( オ ブ ジ ェ ク ト ) の 設 定
I N V O K E コ レ ク シ ョ ン 名 " s e t ̲イ ン デ ク サ"
U S I N G イ ン デ ッ ク ス 設 定 値
ま た 、 コ レ ク シ ョ ン の 各 要 素 を 反 復 処 理 で 取 り 出 す に は 、P E R F O R M 文 ( 拡 張 構 文 ) を 使 用 し ま す 。 こ の 構 文 に よ り 、G e tメ ソ ッ ド や イ ン デ ッ ク ス の 換 算 処 理 な ど を 記 述 す る こ と な く 、 コ レ ク シ ョ ン の 各 要 素 を 順 次 取 り 出 す こ と が 可 能 で す 。
反 復 処 理 に よ る 値 の 取 出 し
P E R F O R M V A R Y I N G オ ブ ジ ェ ク ト 名 T H R U コ レ ク シ ョ ン 名 . . . .
E N D - P E R F O R M