ネットの記事や技術書などを読んでいると関数と書かれていたり、メソッドと書かれていたりしますが、
厳密に言うと、関数とメソッドには違いがあります。
この記事では関数とメソッドの違いについて紹介していきます。
まずは関数とメソッドについて説明していきます。
目次
関数とは?
一連の処理をまとめたもの。
同じ処理を何回も書くとめんどくさいので、関数にまとめておく。
引数に値を定義しておくと関数を呼び出すときに引数に値を入れると出力される。
メソッドとは?
クラス内の関数のこと。
振る舞い、サブルーチン、プロシージャともいう。
では、関数とメソッドの違いは?
関数とメソッドについて簡単に説明したところで、ここからは2つの違いについて紹介します。
関数は単体で利用し、
メソッドは変数やインスタンスにつけるドット記法のように利用します。
【関数】コード例
Console.WriteLine() // コード例 1
Debug.Log() // コード例 2
Console.ReadLine() // コード例 3
/* コード例 4 */
static int PlusCalculate(int x, int y)
{
return x + y;
}
int result = PlusCalculate(1, 2);
Console.WriteLine("結果: " + result);
/* コード例 4 */
Console.WriteLine、Debug.Log、Console.ReadLine、PlusCalculateが関数です。
【メソッド】コード例
using UnityEngine;
public class CardModel
{
public int hp;
public int attack;
public bool isAlive = true;
void Damage(int dmg)
{
hp -= dmg;
if(hp <= 0 )
{
hp = 0;
isAlive=false;
}
}
void RecoveryHP(int point)
{
hp += point;
}
public void Attack(CardController card)
{
/*★コード例1 Damegeがメソッド*/
card.model.Damage(attack);
}
public void Heal(CardController card)
{
/*★コード例2 RecoveryHPがメソッド*/
card.model.RecoveryHP(attack);
}
}
public class CardController : MonoBehaviour
{
public CardModel model;
}
Damage、RecoveryHPがメソッドです。
クラス内で定義されている関数をドット記法で呼び出しているため、メソッドとなります。
まとめ
いかがだったでしょうか。
本日は関数とメソッドの違いについて紹介しました。
しかし、実は言うとそこまで区別がされていなかったりします。
メソッドで統一して基本的には呼ぶことが多いですね。
頭の片隅にこういう違いがあるんだな~と置いておけばいいと思います。
ではでは!
コメント