関数とメソッドの違いは?

オブジェクト指向プログラミングを行う上で必ず利用することになるメソッド。

似たような言葉に関数という言葉もあります。

こちらの記事では、普段何気なく、処理のまとまりを関数と呼んだりメソッドと呼んだりして、ふと「あれ?関数とメソッドって同じものを指す言葉だったかな?」と疑問に感じてしまった方向けに、関数とメソッドの違いを整理してご紹介しています。

 

 

sponsor link

関数とは?

関数とは簡単に言うと、処理のまとまりです。

決まった処理を何度も書いてしまうと、非常にメンテナンスが難しくなってしまいます。

例えば不具合が見つかったり、仕様変更の際に、全ての処理に変更を施さなくてはいけなくなります。

その際、同じ処理を行っている部分を切り出して、必要な時に呼び出して利用できるように処理をまとめたものを、関数と呼びます。

 

例えば高さと幅を渡して面積を計算する関数の場合は下記のように定義します。(Pythonでの記述例)

def get_area(height,width):
    area = height * width
    return area

この例では関数に引数を渡していますが、必ず値を渡されなければならないとか決まったルールはありません。

また中の処理も関数内で現在日時を加工して返却したり、値を返さずにグローバル変数に格納するだけの処理であったり、内容は様々です。

ちなみに関数には、ユーザー定義のものとあらかじめ準備された組み込み関数の2種類あります。

 

 

メソッドとは?

メソッドは、英語でmethod、方式や方法です。

オブジェクト指向言語においてクラスに格納されるデータを扱う方法を記述した処理の事をメソッドと言います。

要するに、オブジェクト指向ではないプログラミング言語ではメソッドという言葉は使われません。

オブジェクト指向言語では、データと扱い方を一つの物として扱う考え方があります。

データとメソッドを定義したクラスをインスタンス化して利用します。この時、内部に格納されたデータを処理するために書かれた関数のことをメソッドと言います。

 

メソッドは下記の様にクラスの中に定義します。(PHPでの記述例)

class ExampleClass
{
    // ↓フィールド(データ格納)
    private $height;
    private $width;
    // ↓メソッド
    public function getArea(){
        return $this->height * $this->width;
    }
}

 

 

まとめ

関数とはモジュール内に記述する特定処理をまとめた定義。

メソッドとはオブジェクト指向言語において、クラス内のデータを扱う方法としてクラス内に定義された関数のこと。

 

モジュールとメソッドの違い
タイトルとURLをコピーしました