【Java】メソッドとは - 引数や戻り値など基本を解説
- 作成日:2022/02/06
Javaのメソッドについて解説します。 厳密にいうと違いますが、Javaでいうメソッドは関数だと考えて問題ありません。
メソッドとは
Javaのメソッドとは、ある処理をまとめて汎用的に使えるようにする仕組みです。他のプログラミング言語でいう関数のようなものです。
「ある値を受け取り、処理を行い、値を返す」といった一連の動作を1つのメソッドとして定義すると色々と便利なのです。 メソッドの書き方は次の通りです。
返す値の型 メソッド名 (もらう値の型 もらう値)
例えば、「2つの数値を受け取り、それを加算して返す」というメソッドを作ってみます。 以下のコードの4~6行目がメソッドです。
class TestClass {
int cal(int i,int j){
return i+j;
}
}
calはメソッド名で、int型のiとjを受け取り、それを加算してint型の値を返しています。
もらう値は複数でもよいので、その場合は「int i,int j」ようにカンマで区切ります。 戻り値がある場合はreturnで値を返します。ただし戻り値は1つだけです。
もらう値(iやj)をを引数といい、 返す値(i+j)を戻り値といいます。
戻り値がない場合はvoid
戻り値がない場合は代わりにvoidと記載します。
class TestClass {
void cal(int i,int j){
int k=i+j;
}
}
このメソッドはiとjを計算して終わるので全く意味のないメソッドですが、 戻り値がない場合は関数名の前にvoidと記載します。
戻り値がないので、先ほどのようにreturnと記載するとエラーとなります。
引数がない場合
もらう値がない場合は引数を省略できます。
class TestClass {
int cal(){
return 1+2;
}
}
このように、もらう引数がない場合は()と記載します。
戻り値・引数が両方ない場合
戻り値や引数が両方ない場合は次のように書きます。
class TestClass {
void cal(){
System.out.println("hello");
}
}
もらう値も返す値もない場合は「void 関数名()」と記述します。 System.out.printlnはコンソールに出力するものなので、calメソッドが呼ばれたら「hello」と出力して処理を終えます。
パラメータと引数の違い
引数と似たものにパラメータという言葉があります。 非常にややこしいのですが、パラメータはメソッドで受け取る値を定義したものです。 一方、引数はメソッドを呼び出すときに渡す値です。
class TestClass {
int cal(int i,int j){
return i+j;
}
}
public class App {
public static void main(String[] args) {
TestClass test = new TestClass();
int tmp =test.cal(1, 2);
System.out.println(tmp);
}
}
4行目でcalメソッドを定義していますが、ここの「int i」や「int j」はパラメータです。まとめてパラメータリストといいます。
一方で、14行目でcalメソッドを呼び出していますが、ここの「(1, 2)」は引数です。
実引数と仮引数
最初のほうで「int i」や「int j」は引数と解説しましたが、実はパラメータなのでしょうか。 いいえ、引数という記述は嘘ではないのです。
なぜかというと、パラメータのことは別名で仮引数というからです。 ちなみに、上記の(1, 2)などの引数は別名で実引数ともいいます。
なので、引数という書き方は嘘ではないのですが、厳密にいうと「仮引数」や「パラメータ」と書くのが正しい書き方です。
現実ではパラメータ(仮引数)のことを引数といい、細かく区別しないこともあると思いますが、 意味を知っておくと用語がでたときに勘違いがなくなると思います。