わかさぎのブログ

プログラミング、Atcoderの勉強とか

Rubyのクラス変数とインスタンス変数

class Greeting
    def setName(name = "Ruby")
      @name = name   #引数をインスタンス変数@nameに設定
    end
   
    def hello
      print "Hello ", @name,"\n"  #変数@nameは他のメソッドからでも参照可能
    end
  end
   
  g1 = Greeting.new  #オブジェクトg1を生成
  g1.setName("Taro") #g1に名前を設定
  g2 = Greeting.new  #オブジェクトg2を生成
  g2.setName("Jiro") #g2に名前を設定
  g1.hello
  g2.hello
  g3=Greeting.new()
  g3.setName()
  g3.hello()

 

name="Ruby"と初めから入っているのは入力しなかったときはデフォルトの値を使うという意味。

@name=nameがself.name=nameに対応する。

self.hogeは同じクラス内の違うメソッド間でも共有される

 

@の数覚える

Rubyアソシエーション: クラスの概要

f:id:kawasakisendai2:20211020023619p:plain