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

メソッド

pointこの用語のポイント

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

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

pointオブジェクト指向の話で出てくるよ

スポンサーリンク

簡単に書くよ

メソッド(英:method)とは

関数(処理のまとまり)のこと(嘘)
本当は

オブジェクト指向(「モノ」に注目した考え方)における「操作」を定義したもののこと
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として「関数」と「オブジェクト指向」について結構ガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

関数は「何かを入れると何かをやって何かを返してくれる、処理のまとまり」です。
一般的には、入力を受けて処理をやり、その結果として出力があります。

メソッド

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

メソッド2

例えば、そうですね。
あなたがシューティングゲーム(射撃ゲーム)を作ろうとしているとしましょう。

シューティングゲームの基本的な登場人物は

1.自分
2.敵
3.弾


です。

メソッド3

そして、それぞれの登場人物には「どんなやつ属性」と「どう動く(操作)」が設定されます。
例えば

・「自分」は3回「弾」に当たると爆発する(どんなやつ)
・「敵」は左に動ける(どう動く)
・「弾」の色は威力と対応している(どんなやつ)


などが「どんなやつ」と「どう動く」です。

メソッド4

あとは、用意した

1.自分
2.敵
3.弾


を組み合わせて、あれやこれやする処理を たくさん作ればゲームは完成します。
例えば

「1」の「3」が「2」に当たったら「2」が消える
(「自分」の「弾」が「敵」に当たったら「敵」が消える)


のような処理を必要な分だけ作り込めば良いでしょう。

メソッド5

ここまでを振り返ってみてください。
「自分」「敵」「弾」といったモノオブジェクトに注目して、あれこれ考えていますよね。
このような考え方がオブジェクト指向です。

メソッド6

誤解を恐れずに言えば、オブジェクト指向のイメージは人形劇です。

人形劇をやるときは、まず人形を用意します。

メソッド7

そして、人形同士を関わらせることで1つの物語を作り上げます。

メソッド8

人形劇の中心は人形です。
物語は「人形に何をするか(どう動かすか)」によって決まります。

メソッド9

オブジェクト指向では、まずモノ(オブジェクト)を用意します。

メソッド10

そして、オブジェクト同士を関わらせることで1つの処理を作り上げます。

メソッド11

オブジェクト指向の中心はオブジェクトです。
処理は「オブジェクトに何をするか」によって決まります。

メソッド12

人形劇は、人形を用意して、その人形同士をあれこれすることで物語を作ります。
オブジェクト指向は、モノ(オブジェクト)を用意して、オブジェクト同士をあれこれすることで処理を作ります。
似ていますよね?

まずはオブジェクトを用意して、そのオブジェクトをあれこれしちゃうぜ!

なのがオブジェクト指向です。

以上を踏まえて

「関数」をカッコつけて言った表現

が「メソッド」です。

……ウソです。
ごめんなさい。

本当は

オブジェクトの操作を定義したもの

が「メソッド」です。
メソッドと関数は似て非なるものだけど同じものです。

オブジェクト指向の説明をしたときに

それぞれの登場人物には「どんなやつ(属性)」と「どう動く(操作)」が設定されます。

と書きました。

メソッド13

これは、ちょっとカッコ付けた言い方をすると

オブジェクトには「属性」と「操作」が定義される

です。

メソッド14

この話における「操作(を定義したもの)」がメソッドです。

メソッド15

あと、ついでなので書いておくと「属性(を定義したもの)」は「メンバ変数」と言います。

メソッド16

気が向いたら、併せて覚えてあげてください。

メソッド:オブジェクトの「どう動く(操作)」を定義したもの
メンバ変数:オブジェクトの「どんなやつ(属性)」を定義したもの


です。

繰り返しになりますが、メソッドは「オブジェクトの操作を定義したもの」です。
それに対して関数は「何かを入れると何かをやって何かを返してくれる、処理のまとまり」です。
メソッドと関数は別の物です。

メソッド17

ただし、です。

実際のプログラムにおいて、オブジェクトの操作を定義したメソッドは「何かを入れると何かをやって何かを返してくれる、処理のまとまり」だったりします。

メソッド18

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

「メソッド」と「関数」は別の意味を持つ用語です。
ただし、メソッドは関数の特徴を持っている場合がほとんどです。
そのため「メソッドと関数って同じもの?」という疑問が出てくる場合があります。

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

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

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

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

用語の意味自体は根本的に違います。
ただし両方とも「処理のまとまり」です。
実際のプログラムを作るときは違いが分かりにくかったりします。

以上でメソッドの説明自体は終わりですが、せっかくなので実際のプログラムっぽい例を挙げておきます。

例えば、そうですね。
Javaで書いた以下の内容のソースコード(プログラムの元ネタ)が あったとしましょう。

//クラス「ピヨ太」
class Piyota{
    //年齢
    int age;
    //性別
    String sex;

    //年齢を設定
    void setAge(int _age){
        age = _age;
    }

    //年齢を返却
    int getAge(){
        return age;
    }

    //性別を設定
    void setSex(String _sex){
        sex = _sex;
    }

    //性別を返却
    String getSex(){
        return sex;
    }

}


このコードは「ピヨ太」クラスを定義しています。
よく分からなければ、ピヨ太君の設計図だと思ってください。
※「クラスって何よ?」と気になる方は、用語「クラス」の説明を ご覧ください。

このピヨ太君の設計図ですが、大きく分けて2つの要素からできています。
それは

    //年齢
    int age;
    //性別
    String sex;


の部分と

    //年齢を設定
    void setAge(int _age){
        age = _age;
    }

    //年齢を返却
    int getAge(){
        return age;
    }

    //性別を設定
    void setSex(String _sex){
        sex = _sex;
    }

    //性別を返却
    String getSex(){
        return sex;
    }


の部分です。

前半部分はピヨ太君の「どんなやつ(属性)」が書いてある部分です。
ピヨ太君は「年齢」という要素を持っています。
ピヨ太君は「性別」という要素を持っています。

後半部分はピヨ太君の「どう動く(操作)」が書いてある部分です。
ピヨ太君は「年齢」を設定できます。
ピヨ太君は「年齢」を答えられます。
ピヨ太君は「性別」を設定できます。
ピヨ太君は「性別」を答えられます。

このコードにおける後半部分の

    //年齢を設定
    void setAge(int _age){
        age = _age;
    }

    //年齢を返却
    int getAge(){
        return age;
    }

    //性別を設定
    void setSex(String _sex){
        sex = _sex;
    }

    //性別を返却
    String getSex(){
        return sex;
    }


がメソッドです。
前半部分の

    //年齢
    int age;
    //性別
    String sex;


がメンバ変数になります。


image piyo2

一言でまとめるよ

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

一番上に戻るよ
スポンサーリンク
書籍画像050
書籍画像060

おまけ

■訳してみるよ

「method(メソッド)」の意味は

・方法
・方式
・手法
・筋道
・秩序


とかです。


■検索してみる?




書籍画像
わわわ説明術コラム
宣伝だよ
つくって、壊して、直して学ぶ Git&GitHub 入門
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
ウォーターサーバーのキャッチコピーを100本考える方法