クラスとオブジェクト
オブジェクト指向プログラミング
オブジェクト指向プログラミングとは、プログラムを作る手法のひとつで、Java言語やC++はその手法を使ったプログラミング言語です。Java言語を使って開発されているProcessingも同様にオブジェクト指向プログラミング環境です。オブジェクトとは「物」のことです。現実世界にはいろいろな物があります。例えば、鉛筆や携帯電話など、物はなんらかの働きをもっています。「働き」の面から物をみると、物には「状態」と「ふるまい」があると言えます。例えば、鉛筆ならその色や太さが状態であり、紙にこすると線が引けるというのがふるまいです。「状態」と「ふるまい」をもって機能する「物」を、プログラムを作成する場面に持ち込んだのが、オブジェクト指向です。
プログラムを構成する部品にも果たすべき働き(機能)があります。ある機能の「物」を作るのと同じように、プログラムの中に「状態」と「ふるまい」をもったオブジェクトを作り、目的の機能を果たさせようという考え方です。例えば、ペイントツールの「線を引く」という機能を実現するのに、鉛筆オブジェクトを作り、色や太さなどの「状態」とマウスの移動に応じて線を引くという「ふるまい」をもたせ、機能を実現するのです。プログラムの中では、「状態」は「変数(フィールド)」で表し、「ふるまい」は「メソッド」で記述します。
クラスからオブジェクトを作る
机の上にある1本の鉛筆は、現実世界で「鉛筆」と識別されるものひとつの”実物”です。実物の鉛筆は色や太さ、書き味を決める設計図から作られます。オブジェクトの考えをプログラム作成に持ち込む際にも、同様にオブジェクトの設計図を考え、それをクラスと呼びます。クラスは、オブジェクトのもつ状態やふるまいを変数やメソッドとして定義した、設計図のようなものです。「鉛筆とは」という設計図がクラスで、実物の鉛筆がオブジェクトです。
プログラムの世界では、クラスは変数やメソッドを定義した「鋳型」であり、実際の仕事をするのはオブジェクトです。newというキーワード(演算子)を使って、クラスからオブジェクトを作ります。
new クラス名(データ, データ…)newの後ろに指定されるクラス名( )は、コンストラクタと呼ばれる特別なメソッドです。括弧の中に指定するデータは,オブジェクトを作るときに使う特別な値で、これを引数と呼びます。引数としてどのようなデータ型の値を指定するかは、クラスの定義の中で決められています。
new演算子が作ったオブジェクトは変数に格納しておきます。こうすることで、後でオブジェクトの変数(フィールド)の値を調べたり、オブジェクトのメソッドを実行したりできます。次の例はAHamonクラスのオブジェクトを生成し、変数hamonに代入しています。
AHamon hamon; hamon = new AHamon(200);AHamonは、「クラスを作る」のセクションで定義するクラスで、ランダムな位置で波紋が広がるように円を徐々に大きくなる動きをします。このようにクラスの生成は、new演算子に続いて、コンストラクタを指定します。
メソッドの実行
オブジェクトに対して、メソッドの実行を指示することで、プログラムの処理が進みます。メソッドを実行するには、処理を行うオブジェクトを表す式(一般にはオブジェクトを入れた変数の名前)を書き、ピリオドに続いて、メソッド名を記述し、後ろに( )を書きます。
オブジェクト.実行するメソッドの名前(実行に必要な値) ↓ ↓ AHamonオブジェクト.display();AHamonクラスにdisplay()メソッドがあります。それを実行するには、上のように書きます。
メソッドがその仕事をするのに、値を受け取る必要がある場合があります。この値も引数(パラメータ)と呼びます。 display()メソッドには引数が必要ないので、( )だけを書きます。
変数(フィールド)の値の参照
オブジェクトの変数(フィールド)に保存されたデータを使う(参照する)には、オブジェクトを表す式(一般にはオブジェクトを入れた変数の名前)を書き、ピリオドに続いて、変数名(フィールド名)を記述します。オブジェクト.変数の名前 ↓ ↓ AHamonオブジェクト.maxAHamonクラスにはmaxというフィールドがあり、そこに波紋の最大値が格納されています。