学習五日目を終えて、新たにまた新しい用語を学び始めました。
一旦レビュー管理アプリケーションを作る作業を終え、今回は「クラス」と「インスタンス」を学び始めました。
これを学びながら再びレビュー管理アプリケーションを作っていく作業を始めていきます。
学習内容
・クラスとインスタンス
・クラスの定義
・newメソッド
・クラスメソッド、インスタンスメソッド
・インスタンスの定義
・クラス変数、インスタンス変数
・クラスとインスタンス
クラス
とある種類のオブジェクトの共通の属性とメソッドをまとめて定義しておく型のようなもの。
(例)「人クラス」の場合
性:名前、年齢、性別など
メソッド:歩く、寝る、食べるなど
このような型を予め、定義しておくことによってこの方に沿った個別のオブジェクトを作ることができる。
インスタンス
クラスに基づいて生まれたオブジェクトをインスタンスと呼ぶ。
クラスが先。クラスからインスタンスが生まれるイメージ。
Rubyには予め定義されているクラスが存在する。
(例)
配列オブジェクト:Arrayクラス
数位オブジェクト:Integerクラス
ハッシュオブジェクト:Hashクラス など
・クラスの定義
書き方
class クラス名
!変数 / メソッドの定義
end
(例)
class Review
end
↑これはReviewクラスの定義
もっともシンプルなクラスの定義の形
・newメソッド
定義したクラスからインスタンスを生成するには、「newメソッド」を使うとできる。
(例)
class Review
end
review = Review.new
この「あるクラス.new」というインスタンス生成のコードは、「クラスがメソッドを利用している」形である。
・クラスメソッド、インスタンスメソッド
クラスメソッド
クラスが使用できる。クラスで共通の情報を使った処理に使用する。
クラスの定義内で行う。
インスタンスメソッド
インスタンスが使用できる。インスタンスごとの個別の情報(属性値)を使った処理に使用。
・インスタンスの定義
インスタンスメソッドの定義はインスタンスのクラスの「定義内」で行う。
書き方
class クラス名
def メソッド名
! 処理
end
end
・クラス変数、インスタンス変数
クラス変数
クラス全体で使える変数。
クラス内ではどこでも使えるため、クラスメソッド、インスタンスメソッドの両方で使える。
クラスを通して、値が共通の情報に使用する。
インスタンス変数
共通の属性としてインスタンスに定義できる変数。
その値は個々のインスタンスによって別別に設定できる。
とりあえず五日目の学習内容は以上になります。
前回まで行っていた作業よりは理解しやすいないように感じました。引き続き学習に取り組みたいと思います。