クラスとインスタンス
クラス = 設計図
インスタンス = 設計図に従って生成された実物
class Morikuma
end
クラスは書き方で定義できます。
ただし、
クラス名の最初は必ず大文字
で記述する必要があります。
インスタンスの生成
定義したクラスに対して、インタンスを生成する際には、
「クラス名」.new
の書き方で記述します。
kuma1 = Morikuma.new
initializeメソッド
def initialize
〜〜
end
インスタンス変数
インスタンス変数は@を付けて表します。
class Morikuma
def initialize # Morikuma.new したら呼ばれるメソッド
@morikuma = "morikuma"
end
def puts_morikuma
puts @morikuma
end
end
attr_accessorについて
class Morikuma
attr_accessor :age
attr_accessor :place
end
上記のようにクラスに対して変数で情報を付与することができます。
initializeメソッド
initializeメソッドは、クラス定義の際に記述することで
インスタンスが生成された時にメソッドを呼び出すことなく、同時に処理してくれます。
class Morikuma
def initialize
@morikuma = kuma
end
end
※上の例では、生成されたインスタンスを=kumaと上書きする謎処理になっておりますがあくまで書式の例として見ていただければ幸いです。
initializeメソッドに引数を定義
initializeメソッドを定義する際に、引数を要求する形で記載することもできます。
class Morikuma
def initialize(変数1,変数2・・・)
なんかいい感じの処理
end
end
ただし、引数を要求する形で定義した際には、「.new」を実行する際に引数とセットで呼び出す必要があります。
Morikuma.new(変数1)
所感
もろもろ、記事を書いていて自分の理解の浅さが特に苦しい内容でした。
このあたりはもっと実際のコードに触れて、クラス、インスタンス、initializeなどの言葉が指している概念をイメージでつかめるようになってから、再度より正しい内容に更新していきたいと思います。
今日はこのあたりで失礼します。
参考サイト
rubyにおけるクラスとインスタンスについて
https://qiita.com/you8/items/7312190ef83d0ed2ef9e
【Ruby】クラスメソッドとインスタンスメソッドについてザクッと分かりやすく説明してみる
https://qiita.com/amidara/items/27221675638cdc9bde6b
initializeメソッド
https://www.rubylife.jp/ini/class/index5.html