##やったこと
・クラスメソッドについて
・オブジェクトについて
・継承について
##学んだこと
ruby クラス使い方
→メソッドなどの処理などを入れる箱のようなもの.
この入れ物のなかに処理を書くのが基本。
# Stringという型(クラス)の値をnewで作成し変数whoへ代入
who = String.new("jobs")
#whoにはString型の値が入っている
p who
上記はStringクラスからnewしてString型の値を作成し、変数whoへ代入している。
そしてp whoでwhoの中身の値を表示している。
実行結果
"jobs"
次のクラスはUserクラスの型からnewしてUserクラスの値を作成し、変数userに値を代入している。
↓
Userという型(クラス)の値をnewで作成し変数userへ代入
user = User.new
userにはUser型の値が入っている
p user (A)
user.name = "user"
p user.name (B)
実行結果
”user"
実行結果(A)の出力結果が得られている。この場合Rubyのクラスの表示方法として決められている定型フォーマットに沿った何かしらのクラスであるという意味のUser:0x00007fbde51ca2f0という表示になっている。
(B)は、Userクラスのメソッドの出力である。
・クラスとインスタンス
クラスには処理を書いていくが、実際に処理を行うときはクラスからインスタンスというものを生成して、処理を行わせる。インスタンスの生成には「new」メソッドを使用する。
class User
def name
@name
end
def name=(name)
@name=name
end
end
user = User.new
user.name="yutaka"
p user.name
実行結果
"yutaka"
このようにクラスを使うときは基本的にnewメソッドを使用してインスタンスを生成して処理を行うことを特に意識しておく。
☆よく言われる例としてはクラスがたい焼きの型、インスタンスがたい焼きなどと言われる。
つまりクラスからインスタンスが生成されといったイメージが大切。
またインスタンスはそれぞれ独立して値を持つことができる。
class User
def name
@name
end
def name=(name)
@name = name
end
end
user1 = User.new
user2 = User.new
user1.name = "yutaka"
user2.name = "hanako"
p user1.name
p user2.name
実行結果
”yutaka”
"hanako"
・クラスの継承
あるクラスの定義を他のクラスの処理に引用すること。
##補足教材
・クラスのinitializeについてhttps://www.sejuku.net/blog/21170
・ruby クラス使い方まとめ https://www.sejuku.net/blog/15328
・https://www.youtube.com/watch?v=cLD2I5QvrCU