Java|メソッドと関数の違いって?-C言語の関数と比較してみる

メソッドと関数の違いって?-C言語の関数と比較してみるプログラミングの知識
プログラミングの知識

今回はJavaにおけるメソッド関数との違いについて考えたいと思います。

僕はJavaを学ぶ前に元々C言語を学習した経験がありました。C言語では特定の処理のことを「関数」と呼んでいましたが、代わりにJavaでは「メソッド」という単語が使われていますよね。

関数、メソッドとはいったい何なのか考えてみたいと思います。

スポンサーリンク

メソッドとは?

メソッド(method)とは何なのでしょうか?意味を調べてみます。

メソッドとは、オブジェクト指向プログラミングにおける、特定のクラスやオブジェクトに属する、特定の処理をひとまとまりにしたサブルーチンのことである。「method」という単語は、一般的な英単語としては「手段」「方法」などを意味する。

特に、Javaのように、全てのサブルーチンが何らかのクラスに属するプログラミング言語でメソッドという言葉が使われる。

IT用語辞典バイナリ:メソッド」より

Javaには様々なメソッドが用意されています。具体的な例を挙げると、

//sysout文の書式
System.out.println("hello java");

sysout文はメソッドです。

また、メソッドを新しく作りたい時は

アクセス修飾子 戻り値の型 メソッド名(引数の型 引数) {
 //処理
}

と記述します。Javaに必要不可欠であるmainメソッドもメソッドの一部になります。

 public static void main(String[] args) {
 //処理
}

関数とは?

関数(function)とは数学でよく使われる単語ですよね。メソッドとは何が違うのでしょうか?意味を調べてみると、

関数とは、入力された値に対してある決まった内容の計算を行い、入力された値に応じた処理結果を返す、数式、あるいは命令の集まりのことである。

プログラミング言語などにおいては、使用頻度の高い処理手続きは関数としてあらかじめ用意されていることが多い。関数に入力する値は「引数」と呼ばれる。引数は、関数の種類によっては数値でなく文字列などが使用される場合もある。

 IT用語辞典バイナリ:関数」より

であるということです。

試しにJavaで例を挙げてみると、

public class FunctionTest {

	public static void main(String[] args) {
		int i = square(5);
		System.out.println(i);
	}

	public static int square(int num) {
		return num * num;
	}
}

出力結果は

25

となります。ここで関数は「square」ですね。引数に「5」が渡されて2乗される処理が行われ、その結果である「25」が返されています。

しかし上にもある通り、squareメソッドを新しく定義して記述しているため、これはメソッドとも言えます。

まとめ‐結局メソッドと関数は同じ?

メソッドとは上の引用にもある通り「オブジェクト指向型言語において、オブジェクトの一部として定義されている関数」のことであるということです。

Javaはオブジェクト指向型言語であるため、関数という呼び名の代わりにメソッドの呼び名が使われています。つまり、メソッドと関数は同じものとして扱われるということです。

以上、メソッドと関数の違いについてまとめてみました。

スポンサーリンク
Dim雑記
タイトルとURLをコピーしました