IAJapan Top IAjapan Java研究部会 TOP
最終更新日:2001-02-13
------

「オブジェクト指向技術入門AtoZ」レポート
「Javaから見たオブジェクト指向入門」

井上氏 講師:井上樹氏(株式会社豆蔵)
[資料(PDF: 241KB)]
 言うまでもなく、Javaのもっとも主要な特長として、それがオブジェクト指向言語であることが挙げられる。したがって、Javaを十分に使いこなし、より良いソフトウェアを作るためには、オブジェクト指向についての理解が必須となる。この日2つ目となった、井上氏のセッションでは、Java言語を取っかかりとして、オブジェクト指向についての理解をより深め、次のステップへの足がかりを提供しようというものだった。

 セッションではまず、オブジェクト、クラス、インスタンス、フレームワークといった、オブジェクト指向についての一連の基本概念を一通りおさらいしたあと、オブジェクト指向最初の一歩として、「オブジェクトを作ること」についてスポットが当てられた。井上氏は「オブジェクトを作ること」とは、ソフトウェアを構成するクラスを自身で定義し、ソフトウェアを組み上げていくことであると説明する。オブジェクトを作ることのメリットは、まず何よりも、より抽象度の高い単位でソフトウェアを見ることができるため、ソフトウェアの構造が理解しやすくなる点にある。セッションでは、簡単な住所録アプリケーションについて、オブジェクトを利用していないケース、利用しているケースの双方のJavaソースコードが示され、このあたりの事情が検証された。もちろん、オブジェクトを作ることが、分岐、永続化、再利用といったオブジェクト指向における有効な技術を利用するうえでの前提になることも忘れてはならない。

 次にオブジェクトの作り方だが、まずソフトウェアをオブジェクトの集合として捉える。このとき、機能とデータを別個に考えるのではなく、オブジェクトとして統一的に捉えることになる。そして、これらオブジェクトの役割と、オブジェクト同士の協力関係を考える。ただし、オブジェクトに課される役割はあくまでも1つであり、たくさんの役割を持たせないよう注意しなければならない。つまり、オブジェクトが協力しあうような役割分担を考えることが重要なのである。

 続いて、オブジェクト指向の次の一歩について、井上氏は「オブジェクトを作らない!」ことを挙げた。このような言い方は、一見やや逆説的に聞こえるかも知れないが、決してそうではない。セッションでは、「車輪の再発明」の例が引かれ、再発明したものは既存のものよりも質が落ちることが多く、また既存のものですでに経験されているはずの失敗を繰り返す危惧があり、テストによる信頼性確認が必要となる点、作業上の効率も悪くなることが説明された。要するに、「オブジェクト指向において重要なのは、再利用という視点なのである」と井上氏は強調する。

 さて、そもそもJavaにはこうしたオブジェクトをより良く利用するためのフレームワークがクラスライブラリとして用意されている。つまり、Javaを十分に活用するためにはクラスライブラリとその仕組みについて理解し、さらには、自身の作ったオブジェクトがクラスライブラリ側からどのように利用されるのかを知る必要がある。以降のセッションでは、JavaにおけるObjectクラスの継承の仕組み、フレームワーク内の変更されない部分であるフローズンスポット、変更可能な部分であるホットスポットといった概念、あるいはtoString()やequals()といったJavaに隠されたフレームワークの概要が紹介された。

 最後に井上氏は、オブジェクト指向を分析段階から利用することで、さらに効果的な開発が可能になること、そして自分の作ったものをクラスライブラリに追加し、ノウハウをフレームワークとして蓄積すべきこと、という2点を「これからのステップ」として紹介し、このセッションを結んだ。


  • 日本インターネット協会 Java 部会についてのお問い合わせは java-info@iaj.or.jp まで
  • このサイトに問題があった場合は webmaster@java-conf.gr.jpまでご連絡ください
  • ※Sun, Sun Microsystemsは米国およびその他の国における米国Sun Microsystems, Inc.の商標または登録商標です。 Javaおよびその他のJavaを含む標章は、米国Sun Microsystems, Inc.の商標であり、同社のJavaブランドの技術を使用した製品を指します
  • 日本インターネット協会 Java 部会は、米国 Sun Microsystems, Inc. とは独立の団体です。
Copyright (C) 1996-2001 日本インターネット協会 All rights reserved.