第1章 オブジェクト指向プログラミング
1.3 クラスについて
Javaプログラムを作成するときに、必ずクラスを使用します。また、前節で学習したオブジェクトには必ず元となるクラスが必要です。この節ではクラスの概要について説明していきます。
1.3.1 クラスとは
これまでに学習してきたJavaコードには、クラスが既に使われています。Javaのプログラムには、クラスが最低1つ以上なければならないルールがあります。例えばJava入門の2章で初めて出てきたサンプル「HelloWorld.java」には「HelloWorld」というクラス名をもつ1つのクラスがあります。
クラス
public class HelloWorld { … }
Java入門でプログラムを実行するだけにしか利用してこなかったクラス(class)が、オブジェクトを生成する雛形になります。HelloWorldクラスではオブジェクトについて理解し難いため、パソコンを例にクラスを表現してみましょう。下図で示すように、クラスに属性や操作を持たせることにより、オブジェクトを生成した時にそれらの属性や操作を持つことになります。
図 1.3.1 オブジェクトの雛形になるクラス
逆に言えば、オブジェクトに持たせたい属性や操作は、クラスというプログラムの形で記述すれば良いことになります。
ポイント
- オブジェクトの属性と操作をプログラムで表す場合、クラスに変数とメソッドを定義すること。
1.3.2 モデル化とは
前項でパソコンを例に挙げましたが、実際にそのクラスを作成する場合のことを考えて見ます。パソコンが持っている属性と操作の全てをプログラムにすることはできないので、必要な部分のみを抽出してクラスを記述します。
ここでいう「必要な部分」というのは、パソコンをどのように扱いたいか?によって大きく変わってきます。例えばパソコンを販売する商品として扱いたい場合には、価格や色、対応のオプション部品などが必要になります。また、製品として見れば、各種機能や性能などが必要になります。
このように、必要な部分を抽出する作業のことをモデル化と呼びます。
この項では、パソコンは以下の属性と操作を持つとしてモデル化し説明を行っていきます。
表 1.3.1 パソコンオブジェクトのモデル化例
これらの属性と操作をクラスに設定します。属性は変数、操作はメソッドで記述しますので、上記の表のような属性と操作を持つようなクラスを作成するには「OS」、「CPU」、「メモリ」を何らかのデータ型の変数として記述し、「起動」、「終了」、「音を鳴らす」という操作をメソッドとして記述する形になります。
上記の表の属性と操作を持たせたクラスを図で示すと以下のようなイメージになります。
図 1.3.2 コンピュータクラスのモデルイメージ
このような形で、対象となるものをモデル化し、属性や操作を抽出したものがクラスになります。