今日はクラスとインスタンスの復習をしてみた!
Ruby学習レッスンIVコースを修了!
今日の備忘録
クラス
- プログラムの設計図をクラス、生成されるものをインスタンスという
- インスタンスを生成するステップ
- クラス(設計図)を用意する
- クラスからインスタンスを生成する
- インスタンスに情報を追加する
- クラスは「class クラス名」で定義できる
- クラス名は必ず大文字で始める
- 「end」を書く必要がある
インスタンス変数
- クラスのインスタンスの変数をインスタンス変数という
- 例:Menuクラスにnameというインスタンス変数を設定する場合
class Menu
attr_accessor :name
end
- 例:Menuクラスにnameというインスタンス変数を設定する場合
- 1つのクラスに対して複数のインスタンス変数を用意できる
- 例
class Menu
attr_accessor :name
attr_accessor :price
end
- 例
インスタンス
- 新しくインスタンスを作成するには「クラス名.new」とする
- 「変数名=クラス名.new」とすることで生成したインスタンスを変数に代入することができまる
*「インスタンス.変数名=値」とすることでインスタンス変数に値を代入することできる
クラスの中で定義したメソッドの使い方
- クラスの中でメソッドを定義でき、「インスタンス.メソッド名」で呼び出せる
- 例
class Menu
attr_accessor :name
attr_accessor :price
def show
puts "私はメニューです"
end
end
menu1 = Menu.new
puts menu1.show
- 例
- インスタンスメソッドも引数を受け取ったり戻り値を返すことができる
- 例
class Menu
attr_accessor :name
attr_accessor :price
def show(data)
return "私は#{data}です"
end
end
menu1 = Menu.new
puts menu1.show("メニュー")
- 例
インスタンスメソッドの中でインスタンス変数を使う方法
- インスタンスメソッドの中で「self.変数名」を使うことでインスタンス変数を使える
- 例
class Menu
attr_accessor :name
attr_accessor :price
def show_name
return "私は#{self.name}です"
end
end
menu1 = Menu.new
menu1.name = "ピザ"
menu1.show
- 例