メソッドとは何か?
プログラムの“メソッド”って、結局なんなの?
関数と何が違うのか、正直あやふやで…
いいところに気づいた。
その“あやふやさ”は、言葉の歴史を知らないと生まれるんだ。
まずは語源からいこう。
method は“道”だった
“method”は、ギリシャ語の methodos が語源なんだ。
- meta:〜に沿って
- hodos:道、進み方
つまり “目的に向かって進む道筋” という意味。
道…? プログラムっぽくないね
むしろ逆。
プログラムは“処理の道順”そのものだ。
哲学的な意味合い
昔の哲学者にとって、methodとは
“どうやって真理にたどり着くか”だった。
デカルトの『方法序説』も、まさにそれ。
つまり…考え方の手順?
そう。
“何をするか”より、“どう進むか”。
これがメソッドの本質。
プログラミングに来るとどうなる?
プログラム世界ではこう変換される。
- 目的:何かの処理をしたい
- 方法:その処理への道筋
- それを名前付きで再利用可能にしたもの
それが メソッド。
例で見ると
int add(int a, int b) {
return a + b;
}
これは“足し算という目的”への道筋を定義している。
じゃあ、メソッドって処理の塊?
半分正解。でももう一歩深い。
関数との違いはどこ?
関数(function)は数学寄りの概念。
- 入力 → 出力
- 世界から独立している
一方、メソッドは
- 何かに“属している”
- その“何かの状態”を前提に動く
具体例で
class Dog {
int energy;
void bark() {
energy--;
}
}
この bark() は Dog に“属している”。
そして Dog の状態を前提にしている。
なるほど。
犬という存在の“振る舞い”なんだ。
そう。
メソッドとは オブジェクトの振る舞いを定義する道筋
ここで一段深く行く
B「実はオブジェクト指向は哲学的でもある。」
- データ → 存在(名詞)
- メソッド → 行為(動詞)
言語っぽい…
その通り。
オブジェクト指向は“世界を文章として捉える”考え方なんだ。
だから「メソッド」なんだ
もし“function”という言葉だけだったら、
世界はただの計算機の集まりになる。
でも“method”という言葉を使うことで、
- 誰が
- どんな文脈で
- どう振る舞うか
を表現できる。
まとめると
- 語源は「道・進み方」
- メソッドとは「目的に向かう処理の道筋」
- オブジェクトに属し、その“振る舞い”を表す
- 世界を文章のように記述するための概念