[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

メソッド (method)

pointこの用語のポイント

pointオブジェクト指向で登場するよ

point「操作」を定義したものだよ

point関数とは似て非なるものだけど同じものだと思ってもいいよ

スポンサーリンク

簡単に書くよ

メソッド (method)とは

関数のこと(嘘)。
本当は

オブジェクト指向における「操作」を定義したもののこと
です。

image piyo

詳しく書くよ

関数」をカッコつけて言ったのが「メソッド」です。

嘘です。
ごめんなさい。

オブジェクトの操作を定義したもの」が「メソッド」です。
メソッドと関数は、似て非なるものだけど同じものです。

何を言っているのか、さっぱり分かりませんね。
順番に説明していきます。

まずは、オブジェクト指向の復習から行きましょう。

オブジェクト指向は「『モノ(どんな奴でどう動く)』に注目した考え方」です。

オブジェクト指向の話で登場する「オブジェクト」は「モノ」です。
この「モノ」は「属性」と「操作」の要素を持っています。

「属性」とか「操作」とか言われると、難しく感じるかもしれませんね。
要は「どんな奴(属性)で、どう動ける(操作)か」ということです。

例えば、ここにピヨ太君がいたとしましょう。

メソッド

オブジェクト指向で考えた場合、ピヨ太君は「モノ」です。

メソッド2

さて、このピヨ太君ですが、どんな奴だと思いますか?

まずピヨ太君の性格や嗜好ですが、

・基本的にのんびり屋
・たまに頑張り屋さん
・寝るのが好き
・食べるのも好き


です。

メソッド3

ピヨ太君ができることは

・寝る
・食べる
・遊ぶ


です。

メソッド4

これをまとめると、以下のようになります。

モノ:ピヨ太君
 ■どんな奴
  ・基本的にのんびり屋
  ・たまに頑張り屋さん
  ・寝るのが好き
  ・食べるのも好き

 ■どう動ける
  ・寝る
  ・食べる
  ・遊ぶ


改めてまとめると、ピヨ太君のぐーたらっぷりが際立ちますね。

ピヨ太君は「モノ」です。
カッコつけて「オブジェクト」と表現してみましょう。

オブジェクト:ピヨ太君
 ■どんな奴
  ・基本的にのんびり屋
  ・たまに頑張り屋さん
  ・寝るのが好き
  ・食べるのも好き

 ■どう動ける
  ・寝る
  ・食べる
  ・遊ぶ


また、上の方で

・「オブジェクトの操作を定義したもの」が「メソッド」
・「どう動けるか」が「操作」


と書きました。

「どう動ける」を「メソッド」に置き換えてみます。

オブジェクト:ピヨ太君
 ■どんな奴
  ・基本的にのんびり屋
  ・たまに頑張り屋さん
  ・寝るのが好き
  ・食べるのも好き

 ■メソッド
  ・寝る
  ・食べる
  ・遊ぶ


あと、今回の説明とは関係ないのですが、ついでなので書いておきます。
「どんな奴」をカッコつけた表現、オブジェクトの属性を定義したものは「メンバ変数」です。

オブジェクト:ピヨ太君
 ■メンバ変数
  ・基本的にのんびり屋
  ・たまに頑張り屋さん
  ・寝るのが好き
  ・食べるのも好き

 ■メソッド
  ・寝る
  ・食べる
  ・遊ぶ


如何でしょう?
オブジェクト指向について、何となく分かりましたかね。

オブジェクト指向においては、何らかの「モノ」をカッコつけて言ったのが「オブジェクト」です。
「モノ」には「属性」と「操作」の2つの要素があります。
その「モノ」は「どんな奴(属性)」で「どう動けるか(操作)」を表現するためです。

この「どんな奴」で「どう動ける」のうち「どう動ける」の部分を定義したものが「メソッド」です。

以上が、メソッドの説明です。

せっかくなので、メソッドと関数の違いにも触れておきましょう。

繰り返しになりますが「メソッド」は「オブジェクトの操作を定義したもの」です。
一方の「関数」は「入力に対して処理を行い出力を返すもの」です。

ハイ、別の物ですね。

ですが、ちょっと待ってください。

実際のプログラムでにおいて、オブジェクトの操作を定義したメソッドは、入力に対して処理を行い出力を返します。
ということは「メソッドは関数である」と表現してもおかしくはないはずです。

これが混乱を招く原因の一つでしょう。

「メソッド」と「関数」は、別の意味を持つ用語です。

ただし、メソッドは現実的に、関数の特徴を持っている場合がほとんどです。
そのため「メソッドと関数って同じもの?」という疑問が出てくるのではないでしょうか。

変な例えですが「メソッド」が「合コン」で「関数」が「飲み会」みたいなものです。

「合コン」と「飲み会」は意味するところが大きく違います。
合コンは男性と女性が仲良くなるのが目的です。
単なる飲み会は、必ずしもそうとは限りません。

ですが、端から見たら、どちらも酒を飲んでバカ騒ぎをしているだけです。
違いが良く分かりません。

「メソッド」と「関数」の違いも、そんなイメージです。

image piyo2

一言でまとめるよ

まぁ「メソッド」って単語が出てきたら「オブジェクトの操作を定義したものだけど、動きとしては関数と同じなんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク