Design Simple Life | シンプルライフを目指すSEのブログ

奨学金、長距離通勤、面倒な人間関係から開放され、妻とつつがないシンプルライフを実現するために、必要な情報を書き・共有していくブログです。

Rubyの勉強の初めにオブジェクトとクラスを調べてみた

Ruby初心者として、勉強し直すということで、オブジェクトとクラスを調べ直した。

オブジェクトとは

Ruby で扱える全ての値はオブジェクトです。 Ruby のオブジェクトに対して可能な操作はメソッド呼び出しのみです。 あるオブジェクトが反応できるメソッドは、 そのオブジェクトが所属するクラスによって一意に決定します。 所属するクラスはオブジェクト生成時に決まり、その後は特異クラスの導入以外、所属クラスが変わることはありません。 またオブジェクトは、特定のクラスに対比して、その「インスタンス」とも呼ばれます。

Ruby 2.1.0 リファレンスマニュアル > オブジェクト

リファレンスにはこう書いてあるけど、よくわからん… Rubyの中で扱われる値・データはオブジェクトであるってことか。だから文字列・整数・配列・ハッシュとかはすべてオブジェクトとみなされている。

クラスとは

クラスは自身に所属するオブジェクトが反応できるメソッドを決定します。 所属するオブジェクトに対してあるメソッドを呼び出すことができるなら、 そのメソッドが「クラスに定義されている」と言います。 またメソッドはクラスとメソッド名によって一意に決定します。

クラスは必ずただひとつの「スーパークラス」を持ち、 スーパークラスであるメソッドが定義されていれば自クラスでもそのメソッドが同じ内容で定義されていることになります。 これを「継承」と呼びます。 継承は推移するので、スーパークラススーパークラスが持つメソッドもまた自クラスにおいて定義されていることになります。 Ruby 2.1.0 リファレンスマニュアル > オブジェクト

これもよくわからんね… 別のサイトをあたった。

クラスオブジェクトは通常単に「クラス」と呼ばれ、主にRuby実行空間にオブジェクトを生み出すために存在します。 生み出されるオブジェクトのデザインは、クラスに記述されており、ユーザがオブジェクトにアクセスしてその機能を実現しようとするとき、オブジェクトはクラスからその機能を借り出します。 Rubyを始めたけど今ひとつRubyのオブジェクト指向というものが掴めないという人、ここに来て見て触って!

オブジェクトがどう作られるかは、クラスの中に記述されると。 だから、 じゃ、もともと使えなきゃ話にならん文字列とか、整数とか、配列とかはどう規定されているんだろ。

Rubyにはその設計者により予め多数のクラスが用意されています。これらは組み込みクラスと呼ばれます。

これか。Ruby 2.0.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリに山ほど書いてある。

Rubyさんが、クラスという設計図にかいてある◯◯というオブジェクトを作るメソッドを実行し、オブジェクトを作ってくれる! 日本語で言うとこんな感じでしょうか。

Reference

http://docs.ruby-lang.org/ja/2.0.0/doc/spec=2fobject.html http://melborne.github.io/2013/02/07/understand-ruby-object/