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でやったクラスって概念は他言語にもあったんですね
classend間にクラス情報を記述
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はまだ終わってませんがクラスについてはキリがいいのでここまでにします。 ではでは