オブジェクト指向プログラミングをマスターするために|学習講座
COBOL(コボル)言語でのオブジェクト指向プログラミングをマスターするための必要な概念とは
そもそもオブジェクト指向プログラミングとは?
オブジェクト指向とは、一言で言うとプログラムをオブジェクト(モノ)として処理する考え方です。
たとえば、テレビのチャンネルを変えるにはリモコンによる操作が必要です。
しかし、どのような仕組みでリモコンを操作すればチャンネルが変わるのか、詳しく理解している人は少ないのではないでしょうか。
「とりあえずリモコンを操作すればチャンネルが変わる」
このような考え方がオブジェクト指向の概念で、詳しい仕組みが分からないけど「リモコンを操作する→チャンネルが変わる」という手続きさえ理解しておけばよいのです。
このようにオブジェクト同士が相互に作用することにより、目的の操作を実行することが可能となることをオブジェクト指向プログラミングと呼びます。
オブジェクト指向プログラミングの概念
オブジェクト指向プログラミングをマスターするにはオブジェクト指向の概念を理解することが大切です。オブジェクト指向をマスターするにはクラスやメソッド、カプセル化やポリモーフィズムなどの概念を理解する必要があります。
・クラス(class)とは
クラス(class)は、ほとんどのオブジェクト指向プログラミング言語で採用されている仕組みとなります。
オブジェクト指向は前述したデータや処理の集まりをモノとして、売上金額や合計金額のようなデータの集まりを元にクラスを呼出して計算処理を行い、求める結果を取得します。
例えばメインのプログラムから、別の処理を呼出して演算などの処理を行いたいときは、クラスを定義して処理を1つにまとめておけば、何度でも同じ処理を利用することができます。
例えば12月の売上データを取得したい場合、あらかじめ指定された該当月のデータをデータベースから取得して、結果を返す処理を売上クラスとして定義しておけば、あとから別の月のデータを取得したい場合も売上クラスを再度利用することができます。
・メソッド(method)とは
メソッド(method)は、特定の処理を1つに纏めたもので、クラスの中に定義します。
例えば売上を計算する売上クラスがあったとして、クラスの中で小計を求める処理と、合計を求める処理を別々に記述し、メイン処理から売上クラスの小計を求めたり、合計を求めたりすることができます。
・カプセル化とは
カプセル化とは、オブジェクトの処理や内部のデータを隠蔽して見えなくすることを言います。カプセル化して処理を隠すことにより、オブジェクトへの特定のアクセスを防いだり、データを書き換えたりすることを防ぐため定義します。
また、カプセル化することで使用するデータや処理の範囲が明確になることも大きな特徴です。
・ポリモーフィズムとは
ポリモーフィズムとは「多態性」のことで、同じ処理でも性質によって異なる振る舞いをすることをいいます。
少し分かりづらいですが、スーパーで野菜を買ってくるという処理があるとして、人によっては健康のため歩いてスーパーに行ったり、自転車や車のほうが楽だからという理由で乗り物を利用してスーパーに買い物に行く人もいます。このような多様な処理に対応できることがポリモーフィズムとなります。
COBOL(コボル)言語におけるオブジェクト指向プログラミング
最近ではオブジェクト指向言語が主流となっています。例えばマルチプラットフォームでさまざまな開発の現場で使用されているJavaやWEBサービスを開発するRubyやPHP、機械学習で注目を集めているPythonなども全てオブジェクト指向言語です。
そのため、COBOL言語も時代に合わせて機能を拡張していき、2002年にはオブジェクト指向にも対応した言語となりました。COBOLでもプログラムの入れ子構造やクラス、メソッドの定義、Javaのクラスを呼び出すことができるようになるなど、大きな改善がされています。
COBOLでオブジェクト指向プログラムを実装するには「プログラム定義」と「クラス定義」を実装する必要があります。
以下はCOBOLでオブジェクト指向プログラミングを実装する例となります。
・クラス定義
- IDENTIFICATION DIVISION.
- CLASS-ID. URIAGE-DATA-CLASS
- INHERITS GOUKEI.
- ENVIRONMENT DIVISION.
- CONFIGURATION SECTION.
- REPOSITORY.
- CLASS GOUKEI.
- IDENTIFICATION DIVISION.
- FACTORY.
- ~
- END FACTORY.
- IDENTIFICATION DIVISION.
- OBJECT.
- ~
- IDENTIFICATION DIVISION.
- METHOD-ID. "SHITEN-01".
- ~
- END METHOD "SHITEN-01".
- END OBJECT.
- END CLASS CLASS URIAGE-DATA-CLASS
クラス定義ではCLASS-IDでクラス名を定義します。FACTORYとOBJECTでは、それぞれクラスで使用するメソッドを定義します。メソッドとは先述したようにクラス内部で定義する一連の処理をまとめたもので、処理を何度でも呼び出すことができます。
・プログラム定義
- IDENTIFICATION DIVISION.
- PROGRAM-ID. SAMPLE_MAIN01.
- ENVIRONMENT DIVISION.
- CONFIGURATION SECTION.
- REPOSITORY
- CLASS URIAGE-DATA-CLASS
- ~
- DATA DIVISION.
- WORKING-STORAGE SECTION.
- 01 URIAGE-01 PIC 9(7).
- 01 URIAGE-02 PIC 9(7).
- 01 売上合計 PIC 9(8).
- PROCEDURE DIVISION.
- ~
- INVOKE URIAGE-DATA-CLASS "NEW" RETURNING URIAGE-01.
- ~
プログラム定義では使用するクラス名をリポジトリ段落(REPOSITORY)で指定します。クラスを呼び出すには、手続き部(PROCEDURE DIVISION)にINVOKE文を指定する必要があります。
オブジェクト指向プログラミングをマスターするためには
オブジェクト指向についてイメージが湧きましたでしょうか?オブジェクト指向は専門の用語も多く混乱しがちですが、プログラミングの処理をモノや部品、すなわちオブジェクトと捉えて処理を実行する非常にわかりやすい仕組みとなっています。
オブジェクト指向をマスターするためには特有の概念と手続き処理、たとえばプログラム定義からクラスを定義して呼び出す方法、クラス定義から処理やメソッドを実装する方法を理解しておくことが大切です。
仕組みさえ理解しておけば、オブジェクト指向をマスターできるようになるでしょう。
この記事を読んだ人は、こちらの記事も読んでいます
あなたのCOBOL技術を活かしませんか?
COBOL入門のカテゴリー
1. 優良社員が多数在籍しています
2. 即日派遣、又は請負います
3. 安心価格で請負います
4. 同時、協力会社募集中です
1. 正社員
2. 契約社員
3. 個人事業主
などの 求人情報 が閲覧できます。
目指せ!COBOLダントツ一番企業。
創業当初の話や理念が閲覧できます。
応募条件
※2020年5月31日を以って、締切りました。
18歳~28歳の方。
正社員採用において、北川社長の著書『祈り方が9割』を読んで感想文を事前に提出すると、無条件で最終面接まで進むことができます。
COBOLとは、どのようなプログラミング言語なのか、初心者にもわかりやすく、文法の例をあげて解説してます。
COBOL入門の人気記事
- COBOL言語とは?プログラムの書き方やルールを解説!|基礎ガイド
- 【COBOL言語】条件分岐処理の代名詞「IF文」について知ろう|用語辞典
- COBOL言語の「MOVE文」とは?転記のルールをご紹介します|用語辞典
- COBOL言語の「STRING文」とは?文字連結の基礎知識と注意点|用語辞典
- 多枝分岐ってなに?COBOL言語の「EVALUATE文」を知ろう!|用語辞典
- COBOL言語の「PICTURE句」とは?基本事項を解説します!|用語辞典
- COBOL言語で計算処理をするなら「COMPUTE文」|用語辞典
- COBOL言語の「REDEFINES句」とは?使い方を確認しよう!|用語辞典
- 覚えておけば楽ができる?COBOL言語の「COPY文」の使い方|用語辞典
- COBOL言語の文字列操作のパターンを理解しよう!|基礎ガイド
- COBOL言語の初期化処理に重宝する「INITIALIZE文」とは?|用語辞典
- COBOL言語の「LOW-VALUE」の使い方について理解しよう!|基礎ガイド
- COBOL言語の「OCCURS句」について知ろう!学ぶべき基本とは|用語辞典
- COBOL言語初心者も安心! 難解「CALL文」をスッキリ解決|用語辞典
- COBOL言語の「PERFORM文」とは。実行制御について解説!|用語辞典
- COBOL言語の繰り返し処理のパターンを理解しよう!|基礎ガイド
- COBOL言語の「定数」の種類と使い方について理解しよう!|用語辞典
- COBOLのDBアクセスパターンを学ぼう!「FETCH」|応用ガイド
- COBOL言語の「DISPLAY文」は、ディスプレイ出力の為にある|用語辞典
- COBOL言語の「VARYING句」は便利?使用方法を学びましょう|用語辞典