開始6日目〜超初心者、文系、30代のスタート〜

number = number+1 はnumberに1を足した値をnuberに変入

 

Rubyの基本概念であるオブジェクト

Rubyの世界では、全てのデータは「オブジェクト」と呼ぶ、文字を表現するための文字列オブジェクト、数を表現するための数値オブジェクト、そして「オブジェクトを保管するオブジェクト」である配列オブジェクトやハッシュオブジェクトがあります。

 

Rubyにはあらかじめ定義されているクラスが存在する。今とりあげたStringクラスを始め、配列オブジェクトのArrayクラス、数値オブジェクトのIntegerクラス、ハッシュオブジェクトのHashクラスなど。

 

クラスメソッドは、インスタンスの親玉であるクラス自身が利用する技。
例えば、レビューの総数ならば、これは個々のレビューではなくレビュークラスが扱うべき情報です。
また、先ほどの項で出てきたnewメソッドも実はクラスメソッドです。newメソッドは「インスタンスを生成する」という振る舞いですが、こちらも個々のレビューではなくクラスが行うべきことでしょう。

インスタンスメソッドは、各インスタンスが行う技。例えば「レビューの内容を表示する」メソッドは、各レビューのインスタンスの属性値を使用するので、インスタンスメソッドとして定義するのがふさわしいでしょう。

 

クラスメソッドの定義ではメソッド名の前にself.をつける

クラスメソッドの呼び出しは「クラス名.メソッド名(引数)」

 

クラスメソッドは、クラスに対して使用し、クラスで共通の情報を使用します。つまり、インスタンスの個別の情報は関係ありません。
インスタンスメソッドは、インスタンスに対して使用し、インスタンスごとに異なる個別の情報を使用します。

書き方の違いも確認しておきましょう。両方ともクラスの定義内に書きます。しかし、クラスメソッドはdef self.classMethodのようにself.をメソッド名の前につけ、インスタンスメソッドdef instanceMethodのようにself.をつけません。

 

クラス内で変わらない共通の情報には、@@を二つ付けるクラス変数を使用。
そして、インスタンスごとに異なる個別の情報には、@が一つのインスタンス変数を使用。

 

エラーメッセージの意味を調べると、何が間違っているのかわかるようになる。

https://techacademy.jp/magazine/19776

上記はRubyのエラーに関するメッセージの意味。

ようやく自力で調べ物ができた印象です。