JavaのメソッドとフィールドはJavaのクラスを使っていく上で必要不可欠な要素だ。
このページではメソッド・フィールドとは何かというお話と、使い方についてお伝えしていこう。
目次
Javaのメソッドとフィールドとは?
クラスとはプログラムの設計図のようなものだ。
その設計図がどのような処理やデータを扱っているのかということを、メソッドとフィールドで書いてゆく必要がある。
メソッドとはクラスが持っている機能のことで、実際にプログラムが実行されるときに実行される内容が書かれている。
フィールドとはクラスが持っている情報のことで、そのクラスがどのような情報を扱うのかが書かれている。プロパティとも呼ばれることも多い。
スマートフォンを想像してみよう。スマートフォン本体をクラスだとすると、電話を掛ける、通信する、アプリを実行するという機能的なものはメソッドだと言える。そして端末名、電話番号、色、サイズなどのスマートフォンが持つ情報はフィールドだと言えるだろう。
メソッドとフィールドの書式
クラス内にどのようにメソッドとフィールドが定義されるかを見てみよう。
メソッドとフィールドの定義の流れ
クラスでは次のような流れでメソッドやフィールドが書かれる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
class クラス名(){ フィールド1; フィールド2; フィールド3; ... メソッド1{ } メソッド2{ } メソッド3{ } ... } |
メソッド定義の書式クラスを宣言のすぐ下に、クラスで使用するフィールドを定義してゆき、その下にメソッドを定義する流れだ。
メソッドは次の書式で書くことができる。
1 2 3 |
[アクセス修飾子] [戻り値の型] メソッド名(引数1,引数2,引数3...){ (メソッドの処理内容) } |
戻り値の型とは、メソッドを実行したときにどのようなデータが返されるかということを定義する。文字列ならString型、数値ならint型などだ。何もデータを返さなない場合はvoid型を指定する。アクセス修飾子とはメソッドの公開範囲のことで、どのクラスからでも実行できるメソッドか、そのクラスの中でしか実行できないメソッドかといったことを設定できる。
メソッド名はどんな名前でも良いが、できるだけわかりやすい名前を付けるようにしよう。メソッド名を見て、どんな処理かがなんとなく想像できればいいだろう。
引数はメソッドを実行するときに渡される値のことだ。渡された値をもとに、メソッドの処理を行う時に定義する。
フィールド定義の書式
次に、フィールドの書式を見てみよう。
[アクセス修飾子] [データの型] 変数名;
データの型はフィールドがどんな型かを定義する。アクセス修飾子はメソッドで指定しているものと同じく、フィールドの公開範囲を定義する。
変数名はメソッド同様、わかりやすい名前を付けるようにしよう。
メソッドとフィールドのサンプル
それではサンプルプログラムを見てみよう。
サンプルプログラム
ファイル名: ClassSample.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
public class ClassSample { //フィールド String name; //[1] String address; //[2] //実行メソッド[3] public void exec(){ init(); //[4] name = "RecurrentTechnology"; //[6] address = "東京"; //[7] printMessage(); //[8] } //初期化メソッド[5] public void init(){ name = ""; //[4] address = ""; //[5] } //メッセージ出力メソッド[9] private void printMessage(){ System.out.println(getMessage()); //[10] } //メッセージ設定メソッド[11] private String getMessage(){ return "私は" + name + "です。" + address + "に住んでいます。"; //[12] } } |
実行結果
1 |
私はRecurrentTechnologyです。東京に住んでいます。 |
サンプルプログラムの解説
メソッドとフィールド説明をしながら解説してみよう。
- [1]フィールド「name」が宣言されている。フィールドの型はString型で、フィールド名から名前を扱うフィールドであることが想像できる。
- [2]フィールド「address」が宣言されている。フィールドの型はString型で、フィールド名から住所を扱うフィールドであることが想像できる。
- [3]実行メソッドであるexecメソッドを定義している。execメソッドの戻り値の型はvoid型なので、実行されても何も結果を戻さないメソッドだということがわかる。
- [4]実行メソッドであるexecメソッドが呼び出されると、まずinitメソッドが実行される。
- [5]初期化メソッドであるinitメソッドを定義している。こちらもexecメソッドと同じく、戻り値の型はvoid型なので、ただ実行されるだけの処理結果を戻さないメソッドだ。
- [5]initメソッドでフィールド「name」が初期化される。[6]同じくフィールド「address」が初期化される。
- [7]execメソッド処理に戻り、フィールド「name」に名前が設定される。
- [8]フィールド「address」に住所が設定される。
- [9]メッセージ出力メソッドであるprintMessageを定義している。コンソールに文字を出力するメソッドだ。
- [10]ここでメッセージが出力されるが、出力する前にメッセージ設定メソッドであるgetMessageを呼び出し、その結果をコンソールに出力している。
- [11]メッセージ設定メソッドであるgetMessageを定義している。戻り値はStringクラスとなっており、文字列が返されることがわかる。
- [12]名前と住所を文章にして、結果を呼び出し元メソッドであるprintMessageに戻している。
まとめ
このページではJavaクラスのメソッドとフィールドについてお伝えしてきた。
Javaプログラムを組む上で必ず理解しておく必要があることだ。参考にしていただければと思う。