1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

クラスとインスタンスとオブジェクト

Last updated at Posted at 2022-07-09

概要

概念的で抽象的な物が苦手なので、これを機にまとめようと思います
説明するのはRubyですけど、どの言語において共通して使える考え方だと思います

オブジェクトとは

そもそもオブジェクトとはなんだろう
Rubyの世界は全てのものがオブジェクトになります
配列ハッシュ以外にもnilもオブジェクトに当たります
つまり全部オブジェクトです
ただ抽象的すぎて分からないですよね
なのでたこ焼きで考えましょう
たこ焼きは紅生姜や青さ、鰹節、マヨネーズ、油、たこ、たこ焼き粉などの材料から作られています
つまりこれら全部がオブジェクトになります

クラスとは

次にクラスとはどのようなものでしょうか?
こちらはオブジェクトを作るための設計書になります
簡単に示すと型です
こちらもたこ焼きで表すと分かりやすいです
1個ずつたこ焼きを作っていたらお客さんが怒ってしまいますので、一気にたくさん作りたいと思ったたこ焼き屋さんの店長さんはたこ焼き器を作りました
こうすることで一気に焼けてお客様を待たせることなく提供できます
またたこ焼き器を作ったことで、具材にチョコを入れたデザートたこ焼きなども作ることができて様々な要望に対応することもできて一石二鳥です
このたこ焼き器がプログラミングのクラスになります
クラスを作ることで、型がある為簡単にものを作れるようになり、応用もできるというわけです

インスタンスとは

インスタンスはクラスによって生成されたオブジェクトです
つまりたこ焼き器からできたたこ焼き本体になります

では早速これらを生かしてRubyのコードで見ていきましょう

class Takoyaki
  def delicious
       puts "たこ焼きは美味しいよ!!"
  end

  def oomoji
    takoyaki = "Takoyaki"
    takoyaki.upcase
  end
end

Takoyaki.new.delicious # => たこ焼き美味しいよ!!
Takoyaki.new.oomoji#=> "TAKOYAKI"

Takoyakiクラスを作りました
Takoyaki.newでインスタンスを作れます
deliciousとoomojiメソッドはどちらもインスタンスメソッドですのでインスタンスを作ってその上にメソッドをつけます

最後に

この記事で少しでも概念的なものを理解できたらいいなって思います

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?