この章ではクラスについて説明します。
今までのプログラムでは変数とメソッドを扱ってきましたが、クラスと言う機能を使うことで、多くの変数とメソッドを1つの機能体として働かせてデータを処理することが出来ます。
クラスとは何かしらの物を作る設計図に例えられます。
設計図は車や家や鉛筆をつくる場合に必要ですが、この設計図に当たるものがクラスです。
車や家や鉛筆の中には色々な部品が含まれていますが、それらの部品には「状態」や「ふるまい」があります。
例えば、鉛筆であれば、「状態」は鉛筆の形、芯、線の濃さなどで、「ふるまい」は線を引く、削るなどの動作です。
その「状態」や「ふるまい」をクラスと言う設計図に書いていきます。
「状態」を「変数」で書き、「ふるまい」をメソッドで書くことになります。
どのような「状態」や「ふるまい」を作りたいかはオブジェクトの役割です。
例えば「線を引く」「線を消す」など具体的な指示をオブジェクトと言う司令塔から出します。
クラスの構文は以下の通りです。 クラスの中に変数やメソッドを書いていきます。
クラスの中の変数をフィールド変数と言います。
次にアクセスレベルについて説明します。
アクセスレベルとは変数やメソッドで使われますが、それらの変数やメソッドに対して、どこからアクセスできて、どこからアクセスできないかを決める修飾子です。
次はオブジェクトについて説明します。
オブジェクトはnew演算子を使って作成します。
オブジェクトとはクラスの中の「状態」を表す変数や「ふるまい」を表すメソッドに指示を出す役割があります。
例えば「線を消す」など具体的な指示をオブジェクトと言う司令塔から出します。 オブジェクトを作る過程をインスタンス化と言います。
ではクラスで作ったプログラムの例を見てみましょう。 このプログラムは銀行でのお金の入金や出金のシステムを簡潔に作っています。2つのクラスがありますが、1つはMainメソッドのあるProgramクラスで、もう1つはGinkouクラスです。
初めにプログラムが実行されるMainメソッドのあるProgramクラスが司令塔になって、他のクラスに指示を出していくことになります。 クラスのフィールド変数には以下の構文でデータを入れます。 クラスのメソッドを実行するためには以下の構文で行います。 その結果、それぞれ以下のメソッドが実行されます。 これらのメソッドはインスタンス化(オブジェクトが作られてから)されてから実行されるのでインスタンスメソッドと呼ばれています。
それぞれのフィールド変数にデータが入ったところで、最後にresultメソッドで出力しています。
結果は以下の通りです。 この例ではProgramクラスを消して、Ginkouクラスにまとめています。
次はアクセスレベルのprivateについて説明します。
これまでのクラスのフィールド変数はpublicにしていますが、これは本来はよろしくありません。
クラスの外側から直接値を入れることが出来てしまうからです。
そこで、フィールド変数はprivateにして、メソッドからこれらのフィールド変数に値を入れる方が最良です。
そして、メソッドはpublicにするのが基本です。
例を見てみましょう。 この例ではすべてのフィールド変数にthisを付けていますが、前の例のように省略が出来ます。
カテゴリー