複雑なデータを表現できるクラスやフィールドって?【改訂版】Eclipseではじめるプログラミング(6)(1/3 ページ)

これからプログラミングを学習したい方、Javaは難しそうでとっつきづらいという方のためのJavaプログラミング超入門連載です。最新のEclipse 3.4とJava 6を使い大幅に情報量を増やした、連載「Eclipseではじめるプログラミング」の改訂版となります

» 2009年04月14日 00時00分 公開
[小山博史株式会社ガリレオ]

booleanやintだけでは、複雑なデータを表すのは難しい

 「変数と型」について、連載第2回「Javaで一から理解するプログラムの変数と演算子」で解説しました。そこでは、boolean型やint型といった「プリミティブ型」というデータの基本型について説明をしましたが、プリミティブ型だけでは複雑なデータを表現するのは大変です。

 アドレス帳のようなプログラムでは、氏名や電話番号、住所などの個人情報を扱うことからも分かるように、実際のプログラムでは複雑なデータを扱うことがよくありますから、こういったデータをどのように表現すればよいのか理解しておく必要があります。

 オブジェクト指向言語では、「クラス」という概念を導入することによって、このような複雑なデータを表現できるようになっています。今回はこのクラスを中心に、オブジェクトインスタンスといった用語について解説をします。EclipseでJavaプログラミングを始める準備がまだの方は、連載第1回の「Eclipse 3.4で超簡単Javaプログラミング基礎入門」で準備しておいてください。

「オブジェクト」とは? 「クラス」とは?

 クラスについて説明をする前に「オブジェクト」という用語について理解をしておきましょう。Javaはオブジェクト指向言語といわれていますが、オブジェクトとは一体何でしょうか。

 オブジェクトとは、英語の「object」のことで「」とか「物体」と訳されます。このことからも分かるように、「オブジェクト指向プログラミング」というのは「物」を見ながらプログラムを設計・実装していくことです。これがどういう意味なのか、具体例を見ながら理解しましょう。

ビデオレンタルショップを「物」に置き換える?

 例えば、ビデオレンタルショップが自社専用のコンピュータシステムを用意したいと考えて、その開発を読者の皆さんへ依頼してきたとしましょう。ビデオレンタルショップでは、会員情報の管理や、レンタルしているビデオの管理をこのシステムで行えるようにしたいそうです。こういった情報をコンピュータで扱えるようにするためには、会員の情報やビデオの情報をプログラムで表現できるようにする必要があります。

 この場合、プログラムを作る前に実際の作業について理解することが大切です。そのために、ビデオレンタルショップに自分の会員証を作ってもらうことにしたとしましょう。その作業を見れば、会員証の作り方やどんな情報が会員証に記載されるかが分かるはずです。ここでは作る手順については考えないとして、実際に会員証に載る情報を確認してみると「会員番号」「氏名」「電話番号」「住所」といったデータが記載されることが分かったとしましょう。まずは、この自分のカードをプログラム上で表現できるようにしなければなりません。

図1 会員証 図1 会員証

 同じようにビデオレンタルをする手順を確認したとします。その結果、例えば「タイトルA」というビデオにはタイトルやジャンルといったデータがあり、そのビデオがいつ貸し出しされたか、誰が借りているのか、何回貸し出しされたか、といった情報も管理しておく必要があることが分かったとします。そうすると、こういった情報もプログラム上で表現できなければいけないことが分かります。

図2 ビデオレンタルの情報 図2 ビデオレンタルの情報

オブジェクトを中心とした設計は直感的は直感的

 このように、プログラムを作成するに当たって、処理の対象となる情報は何かということを抽出するには、実際の作業を分析しながら行います。この分析の簡単な例を紹介しましたが、会員カードやビデオといった具体的な物(オブジェクト)を使って抽出しているのが分かったと思います。

 オブジェクトを中心として設計をしていくのは、非常に直感的で分かりやすい方法です。これが、オブジェクト指向で設計するのが普及した理由です。

物を「分類」でまとめると……

 さらに具体的なオブジェクトを対象として検討していくと、オブジェクトを「分類」できることに気付きます。

 例えば、実際の作業について確認をしていくと、「会員のAさんがビデオを借りるときには、Aさんの会員カードを使って……」「会員でないBさんがビデオを借りるときには、まずはBさんの会員カードを作成して……」のような話が出てきます。この話の中に、「Aさんの会員カード」や「Bさんの会員カード」という物が出てきます。

 これらは物としては別ですが、どちらも「会員カード」という点では同じです。この具体的な物としての会員カードと、「分類」としての会員カードとは、区別して話をしないと混乱してしまいます。これらを区別するために、前者をオブジェクト、後者をクラス(class、分類)といって分けて呼びます。

図3 オブジェクトとクラス 図3 オブジェクトとクラス

 次ページでは、点・線・三角・円などの図形をクラスで表してみましょう。Eclipseの便利なエラー表示機能についても説明します。さらに、クラスが持つ情報「フィールド」にも触れます。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。