Rubyのインスタンスを理解してモヤモヤから解放される。

プログラム

Rubyのインスタンスって何かわからなくて
モヤモヤしてる、そこのあなた!

Rubyのインスタンスの意味は
このページで理解してしまいましょう!

そうすれば、次のステップに進めること間違いなし!

Rubyのインスタンスってどんな意味?

インスタンスという言葉は
英語のinstanceという単語が由来です。

instanceとは、実例という意味です。

「そうなんだ!で、なんの実例のことなの?」

読み進めていけば、わかります!

Rubyのインスタンスって何のこと?

ズバリ、結論から述べると

Rubyでいうインスタンスとは
クラスに属するオブジェクトのことを指します。

オブジェクトとあまり変わりがないようですが

「そのオブジェクトはクラスに属してるんだぞ!」

ってことを強調したい時にインスタンスと表現します。

クラスに属していればインスタンスと呼べる。

以下のように
文字列や数字は何かしらのクラスに属しています。

1,2100 整数オブジェクト Integer
カフェラテ、hello 文字列オブジェクト String
[1,2,3] 配列オブジェクト Array

※配列オブジェクトとは、複数のオブジェクトの入った箱のようなものです。
ここでは難しく考えずに先に進みましょう。

つまり、

整数オブジェクトも、文字列オブジェクトも、配列オブジェクトも
クラスに所属しているインスタンス(オブジェクト)であることが
理解できますね。

さて、ここで問題です!

Q.オブジェクトとは何のことでしょう?

制限時間は3秒!

 

A.答え:オブジェクトとはモノのことでしたね!

「そうなのか!とにかくクラスに属してればインスタンスって呼ぶことが出来るんだな!」

そうです!そのくらいザックリとした理解で大丈夫でしょう!

※オブジェクト指向に関してはこちらの記事でも解説されてますよ!
https://papael14.com/ruby-object-orientation/

では、次に
オブジェクトがクラスに属しているインスタンスであると言うことを

カンタンなコードでわかりやすく実証しましょう。

classメソッドでオブジェクトがクラスに所属してることを暴く

これも、かなり簡単です。

楽しい気分で、やってみましょう!

たったこれだけ入力してみてください。

p 1.class

ポイントは以下になります。
1個ずつしっかりと指示を出しましょう♪

pメソッドを使うことで情報を表示します。
②ここでは整数オブジェクトである”1”を入力します。
③その後に、classメソッドを使います。

※メソッドを使うときの公式。
「オブジェクト.メソッド」

これを入力することで
「整数1がどのクラスだかを暴いて、画面に表示してくれよ〜!!頼むよ〜!」

という意味になります。

これで実行してみてください!

すると、こんな結果が出たと思います!

Integer

Integerというクラス名が表示されたと思います。

よって、整数オブジェクトが
インスタンスであるということが証明できましたね!

おまけ:変数にもclassメソッドは使える。

ここで”おまけ”でございます。

先ほど、出てきたclassメソッド。

このclassメソッドは変数にも使う事ができます。

変数とは、オブジェクトの入ったカゴのようなものです。

例えば、マリオのゲームやってるとします。
そのマリオは変数という名前の書かれたカゴを手にしています。

そのカゴの中に「文字列オブジェクト」をぶっ込んだり「数字オブジェクト」をぶっ込んだりします。

そして、マリオはカゴ(変数)に自分の好きな名前をつけるのです。

そうすれば、マリオはその名前を呼ぶことで

カゴの中に入れたオブジェクトを呼び出すことができます。

ここでパッとしなくても、理解できるタイミングが
きっとあるので先に進みましょう。

試しにこのようなコードを入力してみましょう!

order = "カフェラテ"
p order.class

①1行目でorder(変数)にカフェラテという値をぶっ込みます。
②2行目で、先ほどと同じようにorder変数が何クラスであるかを表示させます。

すると、こんな結果が返ってきたと思います。

String

order変数にぶっ込んだ”カフェラテ”の文字列に対して
“String”という結果が返ってきてます。

この記事で紹介したコードを参考に
他の数値や文字列に置き換えたりして遊んでみましょう!

この記事が、あなたのRubyライフ
少しでもいい影響を与えられればと願っております!

まとめ

・インスタンスとは、クラスが用いられたオブジェクトのこと。
・オブジェクトがクラスに属してることはclassメソッドで暴ける。