オブジェクト指向プログラミングをマスターするために|学習講座

COBOL(コボル)言語でのオブジェクト指向プログラミングをマスターするための必要な概念とは

勉強法-学習講座-オブジェクト指向プログラミング-イメージ

そもそもオブジェクト指向プログラミングとは?

オブジェクト指向とは、一言で言うとプログラムをオブジェクト(モノ)として処理する考え方です。

たとえば、テレビのチャンネルを変えるにはリモコンによる操作が必要です。

しかし、どのような仕組みでリモコンを操作すればチャンネルが変わるのか、詳しく理解している人は少ないのではないでしょうか。

「とりあえずリモコンを操作すればチャンネルが変わる」

このような考え方がオブジェクト指向の概念で、詳しい仕組みが分からないけど「リモコンを操作する→チャンネルが変わる」という手続きさえ理解しておけばよいのです。

このようにオブジェクト同士が相互に作用することにより、目的の操作を実行することが可能となることをオブジェクト指向プログラミングと呼びます。

オブジェクト指向プログラミングの概念

オブジェクト指向プログラミングをマスターするにはオブジェクト指向の概念を理解することが大切です。オブジェクト指向をマスターするにはクラスやメソッド、カプセル化やポリモーフィズムなどの概念を理解する必要があります。

・クラス(class)とは

クラス(class)は、ほとんどのオブジェクト指向プログラミング言語で採用されている仕組みとなります。

オブジェクト指向は前述したデータや処理の集まりをモノとして、売上金額や合計金額のようなデータの集まりを元にクラスを呼出して計算処理を行い、求める結果を取得します。

例えばメインのプログラムから、別の処理を呼出して演算などの処理を行いたいときは、クラスを定義して処理を1つにまとめておけば、何度でも同じ処理を利用することができます。

例えば12月の売上データを取得したい場合、あらかじめ指定された該当月のデータをデータベースから取得して、結果を返す処理を売上クラスとして定義しておけば、あとから別の月のデータを取得したい場合も売上クラスを再度利用することができます。

・メソッド(method)とは

メソッド(method)は、特定の処理を1つに纏めたもので、クラスの中に定義します。

例えば売上を計算する売上クラスがあったとして、クラスの中で小計を求める処理と、合計を求める処理を別々に記述し、メイン処理から売上クラスの小計を求めたり、合計を求めたりすることができます。

・カプセル化とは

カプセル化とは、オブジェクトの処理や内部のデータを隠蔽して見えなくすることを言います。カプセル化して処理を隠すことにより、オブジェクトへの特定のアクセスを防いだり、データを書き換えたりすることを防ぐため定義します。

また、カプセル化することで使用するデータや処理の範囲が明確になることも大きな特徴です。

・ポリモーフィズムとは

ポリモーフィズムとは「多態性」のことで、同じ処理でも性質によって異なる振る舞いをすることをいいます。

少し分かりづらいですが、スーパーで野菜を買ってくるという処理があるとして、人によっては健康のため歩いてスーパーに行ったり、自転車や車のほうが楽だからという理由で乗り物を利用してスーパーに買い物に行く人もいます。このような多様な処理に対応できることがポリモーフィズムとなります。

COBOL(コボル)言語におけるオブジェクト指向プログラミング

最近ではオブジェクト指向言語が主流となっています。例えばマルチプラットフォームでさまざまな開発の現場で使用されているJavaやWEBサービスを開発するRubyやPHP、機械学習で注目を集めているPythonなども全てオブジェクト指向言語です。

そのため、COBOL言語も時代に合わせて機能を拡張していき、2002年にはオブジェクト指向にも対応した言語となりました。COBOLでもプログラムの入れ子構造やクラス、メソッドの定義、Javaのクラスを呼び出すことができるようになるなど、大きな改善がされています。

COBOLでオブジェクト指向プログラムを実装するには「プログラム定義」と「クラス定義」を実装する必要があります。

以下はCOBOLでオブジェクト指向プログラミングを実装する例となります。

・クラス定義

  1. IDENTIFICATION DIVISION.
  2. CLASS-ID. URIAGE-DATA-CLASS
  3. INHERITS GOUKEI.
  4. ENVIRONMENT DIVISION.
  5. CONFIGURATION SECTION.
  6. REPOSITORY.
  7. CLASS GOUKEI.
  8.  
  9. IDENTIFICATION DIVISION.
  10. FACTORY.
  11. ~
  12. END FACTORY.
  13.  
  14. IDENTIFICATION DIVISION.
  15. OBJECT.
  16. ~
  17.  
  18. IDENTIFICATION DIVISION.
  19. METHOD-ID. "SHITEN-01".
  20. ~
  21. END METHOD "SHITEN-01".
  22. END OBJECT.
  23. END CLASS CLASS URIAGE-DATA-CLASS

クラス定義ではCLASS-IDでクラス名を定義します。FACTORYとOBJECTでは、それぞれクラスで使用するメソッドを定義します。メソッドとは先述したようにクラス内部で定義する一連の処理をまとめたもので、処理を何度でも呼び出すことができます。

・プログラム定義

  1. IDENTIFICATION DIVISION.
  2. PROGRAM-ID. SAMPLE_MAIN01.
  3. ENVIRONMENT DIVISION.
  4. CONFIGURATION SECTION.
  5. REPOSITORY
  6. CLASS URIAGE-DATA-CLASS
  7. ~
  8. DATA DIVISION.
  9. WORKING-STORAGE SECTION.
  10.  
  11. 01 URIAGE-01 PIC 9(7).
  12. 01 URIAGE-02 PIC 9(7).
  13. 01 売上合計 PIC 9(8).
  14.  
  15. PROCEDURE DIVISION.
  16. ~
  17. INVOKE URIAGE-DATA-CLASS "NEW" RETURNING URIAGE-01.
  18. ~

プログラム定義では使用するクラス名をリポジトリ段落(REPOSITORY)で指定します。クラスを呼び出すには、手続き部(PROCEDURE DIVISION)にINVOKE文を指定する必要があります。

オブジェクト指向プログラミングをマスターするためには

オブジェクト指向についてイメージが湧きましたでしょうか?オブジェクト指向は専門の用語も多く混乱しがちですが、プログラミングの処理をモノや部品、すなわちオブジェクトと捉えて処理を実行する非常にわかりやすい仕組みとなっています。

オブジェクト指向をマスターするためには特有の概念と手続き処理、たとえばプログラム定義からクラスを定義して呼び出す方法、クラス定義から処理やメソッドを実装する方法を理解しておくことが大切です。

仕組みさえ理解しておけば、オブジェクト指向をマスターできるようになるでしょう。

この記事を読んだ人は、こちらの記事も読んでいます

【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集

株式会社COBOLの求人・転職・募集情報を見る

COBOL入門のカテゴリー

取引企業様 募集中
COBOL技術者 募集
COBOL魂
読者採用
COBOL入門