TOP比較データ> オブジェクト指向とは
PHP4とJavaのパフォーマンス比較
徹底比較!! PHP & Java

第3回:PHP4とJavaのオブジェクト指向

著者:ワイズノット  土橋 芳孝   2004/12/06
1  2  3  次のページ
オブジェクト指向とは

   最近はオブジェクト指向という言葉も定着しました。オブジェクト指向開発言語のひとつであるJavaはWebアプリケーションを中心とした企業システムの開発になくてはならない存在となりましたし、オブジェクト指向を用いたドキュメントの表記法であるUMLも徐々に普及しています。

   オブジェクト指向とは、ソフトウェアの設計や開発において処理の手順よりも処理の対象に重点を置いた考え方です。オブジェクト指向では処理の対象を物、つまりオブジェクトとして扱い、関連するデータ(変数)と処理(関数)をオブジェクトの中で管理します。たとえば、非常にシンプルなテレビをオブジェクト指向で考えると下記のようになります。
非常にシンプルなテレビのオブジェクト(※1)
テレビ
チャンネル
電源をつける
電源を消す
チャンネルをまわす

←  オブジェクトの名前

←  オブジェクトに関連するデータ(変数)

←  オブジェクトに関連する処理(関数)

  • 「電源をつける」という関数を使うことでテレビの電源がつき、チャンネルという変数に格納されている数値に応じて、テレビの画面に番組を映し出します。
  • 「電源を消す」という関数を使うことでテレビの電源を消すことができます。
  • 「チャンネルをまわす」という関数を使うと、チャンネルという変数に格納されている数値を変化させて、その数値に応じた番組をテレビの画面に映し出します。
   オブジェクト指向によって、皆さんが普段の生活で使っている様々な物を扱う時と同じ感覚でソフトウェアを扱うことができます。このオブジェクト指向によって、ソフトウェア開発では下記のような利点を得られます。


利用する機能の内部動作を意識する必要がない

   テレビの電源をつけるために必要な内部動作を知らなくても「電源をつける」という関数を利用することで簡単にテレビの電源をつけることができます。


障害の発生箇所を特定しやすい

   何らかの障害が発生し、テレビの電源を消すことができなくなってしまった場合、「電源を消す」という関数、またはテレビのオブジェクトそのものに障害があることは明らかなので、迅速に障害を復旧できます。


容易に機能の拡張や再利用ができる

   テレビのオブジェクトからリモコンテレビのオブジェクトを簡単に作成できます。テレビのオブジェクトを継承(※2)してリモコンテレビのオブジェクトを作成し、「リモコンでチャンネルを変える」という新しい関数を追加することができます。また、既存の「チャンネルをまわす」という関数をリモコンにも対応できるように修正することも可能です。

テレビのオブジェクトからリモコンテレビのオブジェクトを作成

テレビ(親クラス)
チャンネル
電源をつける
電源を消す
チャンネルをまわす

リモコンテレビ(子クラス)
チャンネル
電源をつける
電源を消す
チャンネルをまわす
リモコンでチャンネルを変える

←  新しい処理(関数)だけを追加
※1  オブジェクトとありますが、正確にはクラスといいます。クラスとはオブジェクトの雛形のようなもので、クラスを実体化したものがオブジェクトとよばれます。上記にあるテレビのオブジェクトの図も正確にはクラス図といいます。

※2  継承とは機能の拡張や再利用を実現するための仕組みです。継承される側のクラス(親クラス)の機能を引き継ぐクラス(子クラス)を作成することで、親クラスの機能+αの機能を子クラスで容易に実現できます。オブジェクト指向の特徴には、継承の他にポリモフィズム(多態性)とカプセル化があります。
1  2  3  次のページ


ワイズノット
著者プロフィール
株式会社ワイズノット  土橋 芳孝
以前はJavaを利用したWebアプリケーション開発とオブジェクト指向設計を得意としていたが、ワイズノットに入社以来、PHPの魅力にとりつかれる。現在はワイズノットのプロジェクトマネージャーとして、PHPをはじめとしたオープンソースの普及に力を注いでいる。


INDEX
第3回:PHP4とJavaのオブジェクト指向
オブジェクト指向とは
  Singletonパターンによる比較
  例外処理の比較