サイトアイコン プログラマー(PG)・システムエンジニア(SE)になるための入門講座

メソッドと関数の違いとは?初心者でも分かるプログラミングの基本を実務目線で解説

メソッドと関数の違いとは?初心者でも分かるプログラミングの基本を実務目線で解説

結論として、関数(Function)は単独で動作する処理メソッド(Method)はクラスやオブジェクトに属する処理です。

どちらも「何らかの処理をまとめたもの」という点では同じですが、所属する場所が異なります。JavaやC#などオブジェクト指向言語ではメソッドという言葉がよく使われ、C言語では関数という言葉が使われます。

関数とは

関数(Function)の概要

関数とは、特定の処理をひとまとめにしたものです。

入力(引数)を受け取り、処理を行い、必要に応じて結果(戻り値)を返します。

例えば、税込価格を計算する処理や、年齢を計算する処理などを関数として作成できます。

関数の例 役割
税込価格を計算する 金額を受け取り税込価格を返す
年齢を計算する 生年月日から年齢を返す
文字数を数える 文字列の長さを返す

関数はプログラムのどこからでも呼び出せる独立した処理として利用されます。

メソッドとは

メソッド(Method)の概要

メソッドとは、クラスやオブジェクトが持つ機能です。

オブジェクトのデータを利用しながら処理を行うため、単独では存在できません。

例えば社員クラスなら、社員情報を表示したり、部署を変更したりする処理がメソッドになります。

クラス メソッド
社員 氏名を表示する
社員 部署を変更する
社員 給与を計算する

メソッドは、そのクラスが持つデータを利用できることが大きな特徴です。

メソッドと関数の違い

比較項目 関数 メソッド
所属先 独立して存在する クラス・オブジェクトに属する
オブジェクトのデータ 基本的に利用しない 利用できる
主な利用言語 C言語、Pythonなど Java、C#など
呼び出し方 関数名で呼び出す オブジェクト経由で呼び出すことが多い
役割 共通処理をまとめる オブジェクトの機能を提供する

イメージで理解する

社員管理システムを例にすると、次のように考えると分かりやすくなります。

処理 種類
消費税を計算する 関数
現在の日付を取得する 関数
社員情報を表示する メソッド
部署を変更する メソッド

社員の情報を扱う処理は社員オブジェクトに属するためメソッド、どこでも利用できる共通計算は関数として考えると理解しやすくなります。

Javaでは「関数」がほとんど存在しない

Javaでは、すべての処理はクラスの中に記述します。

そのため、Javaで「関数」と呼ばれることがあるものも、正確にはメソッドです。

一方、C言語ではクラスという概念がないため、処理はすべて関数として定義します。

言語 主に使われるもの
C言語 関数
Java メソッド
C# メソッド
Python 関数・メソッドの両方

なぜ違いを理解することが重要なのか

設計書やソースコードでは、「この処理は関数として切り出すべきか」「クラスの責務としてメソッドにすべきか」を判断する場面があります。

この違いを理解していると、コードの読みやすさや保守性が向上し、設計意図も把握しやすくなります。

実際のIT現場での利用例

関数が向いている処理

メソッドが向いている処理

実務では、「オブジェクトの状態を変更する処理」はメソッド、「どこからでも利用できる汎用的な処理」は関数という考え方がよく用いられます。

初心者が混乱しやすいポイント

クラスの中にある処理はメソッド」「単独で存在する処理は関数」と覚えると理解しやすくなります。

実務でよくある設計例

処理内容 適したもの
社員情報を取得する メソッド
顧客情報を更新する メソッド
消費税を計算する 関数
文字列を大文字に変換する 関数
在庫数を変更する メソッド

筆者が現場で経験したこと

新人の頃は「関数」と「メソッド」を同じ意味で使っていました。しかし、Javaのレビューで「Javaでは正確にはメソッドです」と指摘されたことがあります。

実際の現場では会話の中で「関数」と表現する人もいますが、設計書や技術資料では「メソッド」と記載されることがほとんどでした。

使用しているプログラミング言語に合わせて正しい用語を使うことで、認識違いを防ぎやすくなります。

新人が覚えておきたいポイント

やりたいこと 適したもの
共通の計算処理を作る 関数
オブジェクトの情報を変更する メソッド
クラスの機能を実装する メソッド
汎用的な処理を再利用する 関数

ソースコードで確認するポイント

  1. 処理がクラスの中に定義されているか確認する
  2. オブジェクトのデータを利用しているか確認する
  3. 共通処理として切り出せるか確認する
  4. 責務が適切に分かれているか確認する
  5. 処理名が役割を表しているか確認する

業務で上司へ報告するポイント

エスカレーションするタイミング

関連するIT用語

よくある質問(FAQ)

メソッドと関数は同じ意味ですか?

広い意味ではどちらも「処理をまとめたもの」です。ただし、オブジェクト指向ではクラスに属する処理をメソッド、独立した処理を関数と区別します。

Javaに関数はありますか?

一般的なJavaプログラムでは、処理はすべてクラスの中に定義されるため、正確にはメソッドです。「関数」という言葉が使われることもありますが、技術的にはメソッドを指している場合がほとんどです。

Pythonは関数とメソッドの両方がありますか?

はい。Pythonではクラスの外に定義したものは関数、クラスの中に定義したものはメソッドです。

実務ではどちらの言葉を使うべきですか?

使用しているプログラミング言語に合わせるのが基本です。JavaやC#では「メソッド」、C言語では「関数」と呼ぶと、チーム内での認識を合わせやすくなります。

まとめ

メソッドと関数はどちらも処理をまとめたものですが、所属先と役割が異なります。

新人エンジニアや社内SEがソースコードを読む際は、「この処理はクラスの機能なのか、それとも共通で使える処理なのか」を意識すると、メソッドと関数の違いを理解しやすくなり、設計の意図も把握しやすくなります。

モバイルバージョンを終了