LoginSignup
0
0

More than 1 year has passed since last update.

[Rails] ポケモンで例えるクラスとインスタンス

Last updated at Posted at 2022-06-15

はじめに

いろいろな記事を参照しても理解が殆どできなかったクラスとインスタンスですが、
メソッドについて考えるタイミングでようやく少しだけ理解が出来たのでまとめてみました。
間違っていたらご指摘お願いいたします。

クラスとインスタンスの違いついて(理解できている部分のみ)

クラス:PostやUserなど大文字(クラス名)のこと、よく設計書とか言われます。大元の部分といったところでしょうか?

インスタンス:@posts, post, @userなどのPostやUserなどのクラスから作り出したもの
→ 例)@post = Post.newとかよく書くと思いますが、ここの@postはPost(クラス)から作り出したものなのでインスタンスということになります。なのでもちろんpost = Post.newpostもインスタンスです。

ポケモンに例えてみる

クラス:ポケモンクラス
ポケモンを作り出してくれる設計図です、卵から孵るんじゃないんです

インスタンス:今回はポケモンクラス(設計図)からピカチュウとヒノアラシを作り出しました

ピカチュウとヒノアラシは同じ設計図から作り出されたので持つべきもの(中身)は一緒です。ただしそれぞれが持っている個性は違います。

ポケモンクラスの中身 ピカチュウインスタンス ヒノアラシインスタンス
name ピカチュウ ヒノアラシ
type でんき ほのお
HP 35 30

参考にさせていただいたサイトです!

最後に

個人的にはdb/schema.rbをみながらdb/seeds.rbに本番用のデータを手作業で入力している時が一番クラスからインスタンスを作っているなーと感じました。
それこそクラスの中身確認してそれぞれにマッチした文章や数字を当てはめていくみたいな感じです。

ポケモンで例えるのは有名な話なので別の例えをしてみたかったのですがなかなかいい例が思い浮かばず断念。
たい焼きクラスなど有名所はまだありますが、実際自分はあまりそれでは理解できなかったので…

自分はメソッドをモデルに移行させる事ができたときにやっとクラスの意味などが少しだけ理解できたので、今分からなくてもいずれわかるようになることがあるので足踏みしないで進んでいくことが大事だと改めて感じました。

閲覧頂きありがとうございました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0