クラスを学ぶ前に、そもそも「オブジェクト指向プログラミング」とは何かについて考えてみましょう。
色々な解釈があるのですが、オブジェクト指向プログラミングの一般的な解釈は次のようになります。
「複数のオブジェクトを組み合わせて一つのソフトウェアを作りあげるプログラミング技法」
それで肝心の「オブジェクト」とは何かですが、これも色々な解釈があるのですが、一般的な解釈は次のようになります。
「世の中にある全てのものを表す概念」
例えば目で見て触れる事が出来る物は当然オブジェクトです。
更に酸素・水素・炭素みたいな物質、歩く・座る・喜ぶみたいな行動、感情・意思・魂みたいな概念も全てオブジェクトです。
ただし概念的な事ばかり言ってたらいつまで経ってもプログラミング出来ませんので、このアクティビィティでは
「オブジェクト」=「クラス」と呼ばれるソースコードを元にして作られるメモリ領域
と具体的に言い切ってしまうことにします。
なおJavaやC#の様にクラスを元にオブジェクトを作る方式の言語の事を「クラスベース」のオブジェクト指向プログラミング言語と呼びます。
一方、Javascript の様に元のクラスが無い「プロトタイプベース」のオブジェクト指向プログラミング言語もあります。
クラスはいくつかの変数群とそれらを操作する関数群をひとまとめにした形式で表されます。
例えば次は Java 言語によるクラスの定義例です。
public class Score { public int math; public int english; public double average(){ return (math + english)/2.0; } }
クラスの詳しい定義方法はこれから学んでいきますが、上のコードの中には int 型の math、english という変数と average() という関数が含まれていることが分かります。
このクラスを定義しておくと関連がある複数の変数や操作群をひとまとめに出来るのでソースコードがすっきりして綺麗になり、バグが減るというメリットがあります。