6:メソッド | Java入門メモ

Java入門メモ

Javaの基礎知識についてゆるゆると書いています

※初めてこのサイトに来た方は

↓Java入門メモについて(必読)を読んでください。

http://ameblo.jp/javareference/entry-10815079120.html



1.メソッドの記入と使い方について


mainメソッドみたいな感じで

void a() {

}


と記入すると

{ }の中の仕事を自動で処理してくれます。

これをメソッドといいます。

でも他のメソッドやmainメソッドの中にvoid a( ){ }とは書けません。

class内でメソッドの外ならどこに書いてもOKです。

if(制御構文の一種)とは別物なので混同しないようにしてください。

 voidは戻り値の型です。

戻り値というものについては下で詳しく説明していますが

ここでは戻り値というものについては書かずに進めます。

 void a( ){ }を記入しただけではメソッドは動きません。

void a( ){ }の使い方は↓の通りです。

class MethodTest {

   static String a;
   static int b;
   static int c;

public static void main(String[] args) { d(); d(); } static void d(){ a = "計算結果 = "; b = 3; c = 5; System.out.println(a + (b + c)); } }

↓実行結果

計算結果 = 8
計算結果 = 8

 mainメソッドの中にd();という風に記入してあります。

d();と呼び出しがあって始めてメソッドdの{ }の中が処理されるのです。

また、「メソッド呼び出し」の時は()で終わっていますが、

System.out.println();と同じく;を付けないといけません。

 もう一つ。

void d( ){ }にstaticが付きました。

staticはメソッドにも使えます。


これにより

「色々な場所でメソッドdが使えるようになる」

とだけ覚えておけば問題ありません。

 以下は戻り値と引数の解説です。

ここから先は「コンストラクタ」の日記を見るまでは読み飛ばしても問題ないです。


2.メソッドの戻り値について


void a() {

}


↑のvoidとは

「戻り値は無いです」という意味です。

この部分は必要なので、戻り値という物が必要なくても

とりあえずvoidを書いておかないといけません。

 voidの部分を「int」に変えると

int型の変数(か普通の整数)を戻り値として設定しなければならなくなります。

戻り値はメソッドの処理が「return」と書いてある行になったら

メソッドから出力されるものです。

戻り値に指定できる要素は1つのみです。

(配列を使えば複数の要素を戻り値にできますが、配列は割愛します)

戻り値が出力された時点で、メソッドの処理は終了します。

出力されたものは変数に代入するか

メソッドを呼び出す時の引数として使わないといけません。

System.out.println()で出力もできます。

 メソッドを呼び出して戻り値を直接引数に代入する時は

セミコロン;はいりません。

class MethodTest2 {

   static int aa;
   static int b;

   public static void main(String[] args) {
      b = a();
      System.out.println(b);
      System.out.println(a());
   }

   static int a() {
      aa = 2 + 3;
      return aa;
   }

} 

↓実行結果

5
5

「return」は戻り値を記述する時に必要なものです。

returnの隣に、戻り値として何を出力するかを記述します。

上のプログラムでは

a(){}内の処理が終わった後(aaに2 + 3の計算結果を代入)

最後に出力された変数aaの値を変数bに代入しています。

(戻り値として出力された5が代入される。

つまりa();は5という風に見ることもできる)


3.メソッドの引数について
 

void a(int aa, String bb) {

}


↑の()内にある文が引数です。

()内の文の意味は

 「メソッドaを呼び出したときにint型の値を()の中に入れてくれれば

このメソッド内でしか使えない変数aaに代入してメソッドの処理をしますよ」

 「メソッドaを呼び出したときにString型の値を()の中に入れてくれれば

このメソッド内でしか使えない変数bbに代入してメソッドの処理をしますよ」

という意味です。

「このメソッド内でしか使えない変数○○」は

初期化の必要はありません。




 ただし、↑のように複数の引数が指定されている場合は

その引数の条件を全て満たさないと

メソッドは使えません(引数の並び順も合わせる必要がある)。

引数と引数の境目は,(半角コンマ)で区切らないといけません。

ピリオドではないので間違えないようにしてください。

class MethodTest3 {

   static String a;
   static int b;

   public static void main(String[] args) {
      a = "aの値:";
      b = 2;
      c(a, b);
   }

   static void c(String aa, int bb) {
      System.out.println(aa + bb);
   }

}

↓実行結果

aの値:2