LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 5 years have passed since last update.

もそ、プログラミングを学ぶ【Ruby】〜クラスとインスタンスは、たい焼き?〜

Posted at

Rubyを学び始めて丸2日が経過しました。
正直なところ、理解が追いついていないことが多すぎる...
とはいえ、いきなり完全に理解できるものではないので「よう分からんけどこんなもんなんやな...知らんけど」みたいな感じで日々のカリキュラムをこなしています。

Ruby言語はオブジェクトを中心とした世界

そんなRubyの世界では、すべてのデータはオブジェクトと呼ばれています。
文字を表現するための文字列オブジェクト、数値を表す数値オブジェクトだけでなく、これらのオブジェクトを管理するためのハッシュや、学習途中で私がかなり苦しめられた配列もオブジェクトなのです。

現実世界でたとえると、人間ひとりひとりやビル、車、ペットボトル...
要するに、形あるものすべてはオブジェクトと言えることになります。

ここで登場するのが、本日の本題であるクラスインスタンス
この2つはそれぞれ、オブジェクトを定義する型と、オブジェクトの性質を表します。
こうやって書くと違いがわかりにくく混乱するのですが、先輩に教えてくれた"たい焼き"の説明がとてもわかりやすかったので、今日はこちらをご紹介します。

クラスはたい焼き型、インスタンスは1個のたい焼き

たい焼きの型は、当たり前ですがたい焼きを焼くための道具ですよね。
つまり、たい焼きというオブジェクトを定義し、たい焼きをたい焼きたる形にしているものなんです。
これがRubyで言うところのクラスです。

一方のインスタンスは、クラスと言うなのたい焼き型によって作られた、たい焼きそのものを指します。

ところで、たい焼きっていろんな味がありますよね。
(念の為言っておきますが、お腹が空いてそういう話をしている訳ではありません)

インスタンスには属性値というものがあり、クラスで指定された個々のインスタンスの特徴が現れます。

皆さん、もうお気づきでしょうか。
インスタンスの属性値とは、ずばりたい焼きの味です。
あんこやカスタード、ジャムやお食事系などいろいろありますが、これがインスタンスの属性値なのです!
なんてわかりやすい...!そしてお腹が空いてきました。

プログラミングを学んでいくと難しいことも多いのですが、こうやって面白い考え方ができると楽しいですね。
私も楽しく美味しい(?)説明ができるようになるぐらい精進せねば、、!
...続く。

0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up