Webエンジニア目指して#31
どうも帰省マンです
実家に戻ると「部屋が狭え!!!」ってなりますね。実質2畳間なので・・・
引っ越しそのものは終わりましたが、健康保険やら年金やらの手続きがめんどいですね
さあやっていきましょう、ProgateのRuby IVです。
クラスとインスタンス
class Foods attr_accessor:name attr_accessor:number def show_text puts "これはFoodsクラス" end end food1=Foods.new food1.name="apple" food1.number=10 food1.show_text puts "#{food1.name}が#{food1.number}個生成されました" 実行結果----------------- これはFoodsクラス appleが10個生成されました
jsでやったクラスって概念は他言語にもあったんですね
・class
とend
間にクラス情報を記述
・attr_accessor
でインスタンス変数の定義
・変数=クラス名.new
でインスタンスの生成
・クラス名.インスタンス変数
で代入や出力が可能
インスタンスメソッド
class Foods attr_accessor:name attr_accessor:number def show_text(count) if count>50 return "過剰在庫です" end return "過剰在庫ではありません" end end food1=Foods.new food1.name="apple" food1.number=60 puts "#{food1.name}が#{food1.number}個生成されました" puts food1.show_text(food1.number) 実行結果----------------- appleが60個生成されました 過剰在庫です
クラス内にメソッドを定義し、インスタンスで呼び出すメソッドとして使う
self.変数名
class Foods attr_accessor:name attr_accessor:number def show_text if self.number>50 return "過剰在庫です" end return "過剰在庫ではありません" end end food1=Foods.new food1.name="apple" food1.number=10 puts "#{food1.name}が#{food1.number}個生成されました" puts food1.show_text 実行結果-------------- appleが10個生成されました 過剰在庫ではありません
selfでの置き換えver
コールバックに使いそう
initializeメソッド
class Foods attr_accessor:name attr_accessor:number def initialize(name:,number:) self.name=name self.number=number puts "Foodsインスタンスが生成されました" puts "在庫名:#{self.name}" puts "個数:#{self.number}" end end food1=Foods.new(name:"apple",number:40) 実行結果--------------- Foodsインスタンスが生成されました 在庫名:apple 個数:40
インスタンスメソッド名をinitialize
で定義するとjsのconstructorみたいな動きをする
ほい
Ruby IVはまだ終わってませんがクラスについてはキリがいいのでここまでにします。 ではでは