アラサーからのエンジニア転身blog

プログラミングの勉強や転職に関して記事にしていきます。

ruby基礎③メゾットの定義、クラスの定義、インスタンス変数

クラスとインスタンスの関係を学びました。
クラスとインスタンス、引数あたりが絡んでくると複雑になるので、基礎をしっかり理解しておこう!!


ちなみに本日は一社人事面談をさせていただきました。
来週に1次面接決定です!!

面談をさせていただき感じた大切なこと
・企業のこれからの方向性、自分のやりたいことがマッチしているか。
・なぜ前職をやめたのか、なぜプログラマー選択したのか、今後どうしていきたいのか? ちゃんと論理立ててストーリーを作ること。
プログラマーになって、どんなことを実現したいのか?熱く語る。
・企業にとって採用していただいて、どんなメリットがあるかはっきり語れること。
・謙虚な姿勢。

以上

#-----------------------------------------------------------------
# メゾットの定義

def sayHi(name = "kondo") #引数 (name) カンマ区切りで複数指定可能, 引数がなければkondoを出力
  puts "hi! #{name}"
end

sayHi ("sakurai")
sayHi "sakurai" #()省略可能
sayHi

=>

hi! sakurai
hi! sakurai
hi! kondo

#return
def sayHi(name = "kondo")
  return "hi! #{name}" #文字列を返す
end

p sayHi
=>
"hi! kondo"

#メゾット内で定義した変数はメゾット範囲外からアクセスできない
def sayHi(name = "kondo")
  score = 8000
  return "hi! #{name}"
end

p sayHi
p score
=>
"hi! kondo"
"test.rb:415:in `<main>': undefined local variable or method `score' for main:Object (NameError)"

#-----------------------------------------------------------------
#クラスの定義

class User

  def sayHi
   puts "hi!"
  end

end

sakurai = User.new #Userクラスのインスタンsakuraiを生成
sakurai.sayHi
=>
hi!

#インスタンス変数
class User

  def initialize(name) #initializeはインスタンスが生成されたタイミングで発動
   @name = name #インスタンス内に情報を保持できるインスタンス変数@にnameを追加 インスタンス変数はそのクラス内であれば使用可能
  end

  def sayHi
    puts "hi! i am #{@name}"
  end

end

sakurai = User.new("sakurai")
sakurai.sayHi

kondo = User.new("kondo")
kondo.sayHi

=>

hi! i am sakurai
hi! i am kondo
#-----------------------------------------------------------------