2014年2月16日日曜日

早い話がオブジェクト指向プログラミングとは何だ

僕が初めてオブジェクト指向プログラミングについて学び始めた時、正直言って訳が分からなかった。インターネットでオブジェクト指向プログラミングについて解説したサイトなんて腐るほど大量にあるけれど、抽象的な話ばかりで結局どういうことなのかさっぱり意味不明だった。

それで悶々としていた時に、当時お世話になっていたある人にオブジェクト指向プログラミングが分からないと言ったら、じゃあ一緒にやってみようということで、近くの喫茶店でノートPCに向かって一緒にRubyでオブジェクト指向のプログラムを書いてみることになった。

それで最低限の要素だけを含む、確か10行くらいの短いプログラムを教えられるままに書いたんだ。え?これだけ?今まで読んだあの沢山のサイトに書いてあった仰々しい説明とか何だったの?って思った。なんだか今まで悩んでいたのがバカバカしくなった。それからオブジェクト指向でプログラムを書けるようになった。

で、僕のオブジェクト指向プログラミングへの理解を2行でまとめると、こうだ。

  • 命令をまとめたものが関数。
  • 関数と変数をまとめたものがオブジェクト。

これだけ。僕はこの理解ができた時に初めて分かったと思えた。

経験豊富な方からはあまりにも大雑把過ぎると怒られるに違いない。でも、初めてオブジェクト指向プログラミングというものに触れた人間に向けての一番最初の説明としてはこれでいいと思う。

とまあ、これで話を終わりにしてもいいんだけど、これからオブジェクト指向プログラミングを実際にしてみようという人も読んでくれているかもしれないので、もう少しだけ説明を加えておこう。上で関数との対比をしたので、同様に使い方の違いを説明すると、

  • 関数の使い方:
    呼び出したら処理結果が返ってくる。
  • オブジェクトの使い方:
    クラスに定義を書く。変数に入れて(インスタンスを作って)使う。内部の関数(メソッド)を呼び出したり、変数(プロパティ/フィールド等呼び方色々)を参照できる。

という感じかな。これも超大雑把(笑)だけど、でもやっぱり初めての人にはこのくらいの説明がいいと思う。まあ、あとは実際に使っていくうちにわかる。

※この記事について指摘・意見・提案・感想などありましたら下のコメント欄にどうそ。

0 件のコメント:

コメントを投稿