当社エンジニアによる書き下ろし技術レポート Close-Up IT

技術レポート 新着RSS(Atom)

この記事に関連するサービス
Webアプリケーションの設計・構築・保守
この記事に関連するお問い合わせ
お問い合わせ

第2章 :言語としてのJavaとオブジェクト指向

2オブジェクト指向とは【1】オブジェクト指向の考え方

2章の1で、「オブジェクト指向プログラミング言語のJavaと、手続き型言語のCOBOLは、言語仕様の基本は同じ」とお話しました。ただし、オブジェクト指向対応部分を除いて・・・です。
では、オブジェクト指向とはどんなものなのか、ごく簡単にご説明します。

オブジェクト指向という考え方は、DOA (データ中心アプローチ)およびDFD (Data Flow Diagram)という、実はもともと構造化設計の特徴であったテクニックを、あわせて発展させたものです。
構造化設計は、ER図 (Entity - Relationship Diagram)を描くことによって、イベント系データやマスター系データを明確にし、DFDによってデータへの操作を定義していきます。こうすることによって、データ部分を隠蔽するようなプログラムのモジュール化を促進し、システム開発を効率化することが目標でした。

オブジェクト指向は、このような考え方をさらに発展させて一般化した方法論といえます。
多分、本稿をお読みの多くの方は、一度や二度はオブジェクト指向関係の本をお読みになっていると思いますので、いまさらな感はありますが、オブジェクトとは「現実世界に存在するものや概念」をソフトウェア上に表現するものです。しかし、オブジェクトをそのままソフトウェア上に実装はできないので、そのオブジェクトをシステムで利用可能なように、「属性」と「振る舞い」を定義したものがクラスになります。そのクラスを使って個々のオブジェクトを生成したものが、インスタンスになります (図2-2参照)。
つまり、従業員というオブジェクトをシステム上で扱える形式にしたものが従業員クラスで、その従業員クラスを使って生成させた、社員番号10番のアーク太郎が、インスタンスになります。
このような考え方を情報隠蔽とカプセル化といいますが、構造化設計でも似たようなテクニックは使っています。

図2-2.オブジェクトとクラスとインスタンスの関係
図2-2.オブジェクトとクラスとインスタンスの関係

こういった考え方をベースとして、オブジェクト指向特有の概念である、

  • 継承
  • 多様性
  • 関連
  • 汎化

といったテクニックを使用して、分析・設計をしていきます。
この結果、クラス図、シーケンス図というオブジェクト指向特有のドキュメントが作成されますが、本稿ではそこまでの知識は不要なため深入りはやめておきます。
Javaは言語仕様として、こういったオブジェクト指向の考え方を取り入れている、ということをおさえておいてください。

このページの先頭へ