はじめに
こんにちは。キノコードです。
「【5分レッスン】Java超入門コース#12 メソッド」について説明します。
メソッドとは?
まず、メソッドについて説明します。
メソッドとは、「処理」のことです。
なぜメソッドがあるのでしょうか?
料理で例えてみます。
例えば、いつも作るカレーがあるとします。
そのレシピを料理ロボットに記憶してもらいます。
またカレーが食べたくなったときに、
ボタン1つで作れる。
しかも、その料理ロボットは、自分も使えるし、家族も使える。
その料理ロボットがメソッドなのです。
メソッドの便利なところは、3つあります。
1つめは、同じものを2回書く必要がなくなること。
2つめは、同じものを他の場面でも使えること。
3つめは、他の人も使うことができることです。
実は、今までのレッスンでメソッドを使ってきました。
変数の中身を表示させるときに使っていたprintln(プリントライン)です。
メソッドの種類
メソッドには2種類あって、自分で作るメソッドと、Javaがあらかじめ用意してくれているメソッドです。
このprintlnメソッドは、Javaがあらかじめ用意しているメソッドです。
printlnメソッドはたった1行で変数の中身を表示してくれますが、メソッドの中身は何行ものコードが書かれています。
もしprintlnメソッドがなければ、変数の中身を表示させたいときに、イチからそのコードを書くことになり、大変です。
printlnメソッドがあるから、変数の中身を表示させたいたびに何行もコードを書く必要ありませんし、使いたいときに、たった1行で使い回すことができるのです。
メソッドの定義の意味
今まで書いてきたコードについて解説をします。
前回のfor文のレッスンで使ったコードはこれでした。
class Lesson09_07 {
public static void main(String[] args) {
int arr[] = {2,4,6,8,10};
int sum = 0;
for( int i = 0; i < 5; i++ ) {
sum += arr[i];
}
System.out.println(sum / arr.length);
}
}
上の2行だけ抜き出すとこうなります。
class Lesson09_07 {
public static void main(String[] args) {
1行目の部分はクラスを定義している部分です。
クラスについては次にレッスンで紹介しますので、2行目からみていきます。
この部分がメソッドを定義している部分です。
メソッドの定義とは、どんなメソッドにするか決めることです。
例えば、他のクラスからアクセスができるようにするか?戻り値の型、引数の型をどうするか?メソッド名はなんとするか?などを決めます。メソッドの内容を決めることをメソッドの定義といいます。
「メソッドの定義」の具体的な意味については、Java オブジェクト指向コースで説明をします。このレッスンでは、こんなことをやっているんだって程度で理解してもらえればOKです。
一番左のPublicから説明していきます。
ここの部分はアクセス修飾子といいます。
メソッドは、オブジェクト指向という考え方から、他のクラスから使うことができないように制限をかけることがあります。
このアクセス修飾子は、どこからアクセス可能であるかを決めるものになります。
アクセス修飾子は、4つあります。
1つめにパブリックです。
これは他のクラスからアクセス可能なアクセス修飾子です。
2つめに、プロテクテッドです。これは、同一パッケージ、サブクラスからアクセス可能です。
3つめに、指定をしない場合です。つまり、何もかかなかった場合です。この場合は、同一パッケージからアクセス可能です。
4つめに、プライベートです。これは、同一クラスからアクセス可能です。
ここは、その他の修飾子です。
その他の修飾子でよく使うものは3つあります。
1つめは、スタティックです。これはクラスをインスタンス化しなくても接呼び出し可能なものです。
2つめにアブストラクトです。これはクラスをインスタンス化できません。
3つめにファイナルです。これはクラスを上書きすることができません。
ここでは戻り値の型を指定します。
voidとは、戻り値がないメソッドのときに記述します。
戻り値が数値型ならここにintを書き、文字列型ならStringを書きます。
ここはメソッド名を書く部分です。
今までみてきたmainメソッドは、Javaのコードに必ず必要なメソッドであり、必ず書くメソッドです
mainメソッド以外に、自分でメソッドを作る場合、ここに自分で作ったメソッド名を記述します。
最後にかっこの中には、引数の型を書きます。
main関数の場合、String[] argsを書くのが一般的です。