東大ニート

東大卒のニートが勉強したことをメモするブログ

<Java>自作メソッドの定義

少し複雑なプログラムを書く時はmainメソッドの他に、自作のメソッドを定義すると便利です。

mainメソッドに山ほどコードを書いてしまう悲しい状況から脱出するために、メソッドの定義方法をメモします。

 以下のサイトを参考にさせていただきました。

nobuo-create.net

 

メソッドの定義方法

mainメソッドの他に2つの整数を合計するsumNumberメソッドを定義すると、以下のようになります。

  1. public class Main {

  2.        public static void main(String args ) {

  3.               //mainメソッドの定義

  4.        }

  5.        public static int sumNumber(int a, int b){

  6.               int sum = a + b;

  7.               return sum;

  8.        }

  9. }

sumNumberメソッドの定義は5〜8行目となります。mainメソッドが含まれるクラス(ここではMainクラス)の中に記述します。

ポイント1. 引数の定義(5行目)

上記のsumNumberメソッドでは2つの引数「a」と「b」を定義しています。

定義する場所はメソッド名に続く「()」の中で、型とあわせて記述します。
複数の引数を持つ場合はカンマで区切って記述します。

ポイント2. 戻り値の定義(5・7行目)

メソッドを定義する時は、戻り値の有無(有る場合はその型)も定義します。

定義する場所はメソッド名の前で、上記の例ではint型の戻り値を返すため、
「public static int sumNumber 〜」と定義されています。

戻り値が無い場合は「void」と記述します。
戻り値が有る場合はその型を記述します。

また、戻り値が有る場合はreturn文を使って、戻り値を指定します。上記の例では「return sum;」(7行目)のようになります。メソッド名の前で定義した戻り値の型と、return文の戻り値の型が一致するように気をつけます。

 

メソッドの使い方

例えば、自作のメソッドとして「introduction」メソッドと「sumNumber」メソッドを定義・使用する場合は、以下のようなコードとなります。

  1. public class Main {

  2.        public static void main(String args ) {

  3.               introduction();

  4.               int answer = 0;

  5.               answer = sumNumber(1, 3);

  6.               System.out.println(answer);

  7.        }

  8.        public static void introduction(){

  9.               System.out.println("答えは以下の通りです");

  10.        }

  11.        public static int sumNumber(int aint b){

  12.               int sum = a + b;

  13.               return sum;

  14.        }

  15. }

以下の結果が出力されます。

答えは以下の通りです
4

ポイント1. 戻り値が無い場合(3・9〜11行目)

戻り値を受け取る必要が無いので、「introduction();」(3行目)のように記述します。

※引数があれば、メソッドの後の「()」の中に記述しますが、ここでは引数がないため「()」の中には何も記述しません。

ポイント2. 戻り値が有る場合(5・13〜16行目)

戻り値を受け取る必要があるので、戻り値の型を指定した変数(またはインスタンス)を用意し、メソッドの結果を受け取るようにします。

上記の場合、「answer = sumNumber(1, 3);」(5行目)のように記述します。

また、ここではsumNumberの引数として2つの整数が必要となるため、「1」と「3」を渡しています。

 

自作のメソッドを効率的にできれば、冗長なコードを書かなくてすむし、書き間違えのミスも減るので、うまく利用したいものですね。