• ベストアンサー

プログラミングrubyでの質問

今、複合データ型のデータの集まりを作ってるんですが。 まあ、classをつくってその中に様々なデータを作っています。 えとわからないことがありまして、 classのインスタンスと属性、または属性値の違いってなんですか? インスタンス変数ってのは属性値のことですか? あとinitializeメソッドでインスタンス変数を初期化する意味はなんですか? 初期化するとどうなるんですか? 入門書を読んで独学で学習中なのですが、言葉の意味の例えが無くて 理解するのに頭が混乱してきました。助けてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>インスタンスと属性、または属性値 この場合の「属性値」というのはインスタンス変数のことだと思うのですが、そうすると違いと言うか当然まったくの別物ですね。 「インスタンス」は単純に言うと「何らかのクラスのオブジェクト」です。もちろんRubyではどんなオブジェクトも何らかのクラスに属しているわけですが、「インスタンス」と呼ぶ場合は特に @instance = SampleClass.new として生成したオブジェクトのことを一般的に指します。 >初期化する意味 簡単に言えば初期値が必要な場合です。 class TestClass  def initialize   @counter = 0  end  def count_up   @counter += 1  end end @n = TestClass.new @n.count_up こうすると意図が見えやすいでしょうか。 @counterの初期値は、もちろん0である必要はありませんが何らかの数値が入っていないといけません。でないとcount_upメソッド実行時に+=を実行できずエラーとなります(初期化していないインスタンス変数の値はnil)。

noname#208914
質問者

お礼

どうもありがとうございます。 参考になりました。

すると、全ての回答が全文表示されます。

関連するQ&A