はじめに
土曜日(3/5)に東京体育館の長水路で初めて泳ぎました !!
ほぼ毎日ジムで泳いでいるのですが、上手く泳げない上に翌朝肩が重かったです・・。疲れていましたが、翌朝も朝トレ(筋トレ&水泳)しました
今回は、メソッドについてです。
段々と複雑になってきているので、丁寧に学習していきます
メソッド
メソッドとは、複数の文をまとめ、それを1つの処理として名付けたもの。
メソッドの定義
public static 戻り値の型 メソッド名(引数){
メソッドが呼び出された時に実行される処理
}
メソッド名は自分で考えた名前でOK!
引数は、メソッドに渡すデータのこと。
1 public class Muscle {
2 public static void main(String[] args){
3 System.out.println("これからメソッドを呼び出すよ");
4 body(); /*メソッドの呼び出し*/
5 System.out.println("メソッドの呼び出し終了!");
6 }
7 public static void body(){
8 System.out.println("プロテイン飲んでますか?");
9 }
10}
表示結果
これからメソッドを呼び出すよ
プロテイン飲んでますか?
メソッドの呼び出し終了!
まず、 Muscleクラスの中にmain(2行目)とbody(4行目)の2つのメソッドが定義されている。
このコードを実行すると、まず自動的にmainメソッドが実行され、「body();」でbodyメソッドが呼び出される。
bodyメソッドは自動で実行されないので、body();というようにメソッドの呼び出しが必要
複数のメソッドが定義されていても、main()より上にメソッドが定義されていても、プログラムは必ずmain()から実行される!!!
戻り値
戻り値は、呼び出し元のメソッドに値を返すこと
値の戻し方
public static 戻り値の型 メソッド名(引き数){
メソッドが実行された時に動く処理
return 戻り値;
}
returnとあるが、returnの後ろにある値が呼び出し元に戻すことができる。
return 変数名; / return 100; / return "hi";こんな感じですかね
1 public class Muscle{
2 public static int add(int x, int y){ /*戻り値がintだからint型にする*/
3 int answer = x + y;
4 return answer;
5 }
6 public static void main(String[] args){
7 int answer = add(10,20); /*addメソッドの呼び出しで30になる*/
8 System.out.println("10+20="+answer);
9 }
10}
表示結果は
10+20=30
return文の後に文を書いたらコンパイルエラーになる(メソッドの終了も行うため)
オーバーロード
オーバーロードとは、同じ名前のメソッドを定義すること
1 public class Muscle{
2 public static int body(int x, int y){ /*1つめのbodyメソッド*/
3 return x + y;
4 }
5 public static int body(String x, String y){ /*2つめのbodyメソッド*/
6 return x + y;
7 }
8 public static int body(double x, double y){ /*3つめのbodyメソッド*/
9 return x + y;
10 }
11 public static void main(String[] args){
12 System.out.println(add(10,20)); /*1つめのbodyメソッドが呼び出される*/
13 System.out.println(add("Muscle","World")); /*2つめのbodyメソッドが呼び出される*/
14 System.out.println(add(2.0,1.3)); /*3つめのbodyメソッドが呼び出される*/
15 }
16}
実行結果
30
MuscleWorld
3.3
このように、それぞれの型が異なれば同じ名前のメソッドを複数定義することができる
1 public calss Muscle{
2 public static int body(int x, int y){
3 return x + y;
4 }
5 public static int body(int x, int y, int z){
6 return x + y + z;
7 }
8 public static void main(String[] args){
9 System.out.println("50+30=" + body(50,30));
10 System.out.println("50+30+20=" + body(50,30,20));
11 }
12}
実行結果
50+30=80
50+30+20=100
個数が違う時もオーバーロードができる