2019.05.08
Javaのオブジェクト指向で、よく出るけどあいまいな理解になりやすいカタカナの用語をまとめました。
一つ一つ意味をまとめておいたので、ご参考ください。
クラス フィールド メソッド
クラスを大まかに説明すると、何かを実行する設計図のようなものです。例えば、自転車であれば走りますし、電話であれば音がなったりします。猫なら鳴き声を出しますし、エサを食べたりもします。クラスというのはこれらの設計図を意図しています。
設計図ですので、クラスの中には具体的な何かを書かねばなりません。その設計図はどのようなデータ(フィールド)を持っているのか,またどのような方法(メソッド)で動かすのか定義する必要があります。
サンプル
1 2 3 | class Sample{ //Sampleがクラス名 ここに様々な処理を書く... } |
クラス名は基本的に自由に設定することができますが、一文字目は大文字にするのが決まりです。
また、Javaの決まり文句で必ず出てくる[public class クラス名]はここからプログラムが始まることを表してます。
Javaのオブジェクト指向では、クラスはそのオブジェクトのメンバやメソッドの集合体で、それらをひと塊としたものです。
上記で説明した設計図という名のクラスに、どのような情報を扱うかといったデータをフィールドと呼びます。例えば、自転車という設計図(クラス)に誰が乗っているかといった「名前」のデータを定義したり、時速といった「スピード」のデータを定義したりします。
Javaに寄せた言い方をすると、直接宣言した変数をフィールドといいます。
構文自体は変数とさほど変わりませんが、先頭に修飾子(publicなど)を付けられる点が違います。
オブジェクトが存在している間、常に存在しておりガーベッジコレクションに回収されるまで、ずっと存在されていることになります。
フィールドのサンプルをご参考ください。
1 2 3 4 5 | //基本の型 [修飾子] データの型 変数名; //フィールドのサンプル public int aiueo; |
フィールドはこのように構成されています。
サンプルを細かく説明するなら、このデータ(フィールド)は、整数(int)を扱う変数で、変数の名前に「aiueo」を宣言した、どこからでもアクセス(public)できることを表してます。
メソッドとは、いくつもある処理を一つにまとめたものです。例えば、自転車なら「乗る動作、走る動作、降りる動作」といった一連の動作を「自転車を使う動作」と定義します。
そうすることによって、一人一人に「乗る動作、走る動作、降りる動作」の三つの動作を当てはめなくても、「自転車を使う動作」一つを当てはめるだけで、自転車を使うことができます。
実は、メソッドを使わなくてもプログラムは成立しますが、ほとんどのプログラムにはメソッドが使われます。
メソッドを使うことで、他のプログラマーが中身の複雑な関数を簡単に使用出来たり、同じコードの繰り返し処理が見やすくなります。
この、他のプログラマーにプログラムを分かりやすく伝えるということがとても大切です。
例えば、下記のサンプルを見てみましょう。
1 2 3 4 5 6 7 8 | public class Bmi{ public static void main(String[] args){ double w = 70.0; double h = 170.0; double b = w / ((h / 100.0) * (h / 100.0)); System.out.println("あなたのBMIは" + b + "です!"); } } |
上記のプログラムは、BMI指数を求めており変数のwに体重を、hに身長を入れるとBMIが出てきます。
ぱっと見で、何をしているのか判断するのは時間がかかりますし、プログラム初心者の方だと何をしているのか分からないかもしれませんね。
次は、メソッドを使ったBMIを求めるサンプルを見てみましょう
1 2 3 4 5 6 7 8 9 10 11 12 | public class Sample{ public static void main(String[] args){ //下にあるbmiメソッドを呼び出す。第一引数に身長を、第二引数に体重を指定 <span class="crayon-e">bmi</span><span class="crayon-sy">(170</span><span class="crayon-sy">,</span> <span class="crayon-cn">60</span><span class="crayon-sy">)</span><span class="crayon-sy">;</span> } //BMIを求めるメソッド <span class="crayon-m"> public</span> <span class="crayon-m">static</span> <span class="crayon-t">void</span> <span class="crayon-e">bmi</span><span class="crayon-sy">(double</span> <span class="crayon-i">height</span><span class="crayon-sy">,</span> double weight<span class="crayon-sy">)</span> <span class="crayon-sy">{</span><span class="crayon-sy"> double b = weight / ((height / 100.0) * (height / 100.0)); System.out.println("あなたのBMIは" + b + "です!"); </span> } } |
なんだか先ほどのサンプルより見やすく簡単に見えませんか?
bmiの第一引数と第二引数に数字を入れたら、簡単にBMIを求めることができます。
ポイントは、プログラムの中身がよく分からなくても、2つの数字を入れるだけでBMIが求められることです。
複雑なプログラムも誰かがメソッド化して一言コメントしておけば、誰でも使いやすいですね。