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

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

Posted at

おことわり

  • ざっくりとしたイメージを書きます
  • 「JavaScript においては……」みたいなオタクなことは書きません

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

クラスは設計図

クラス(Class) とは設計図のこと。

ただの設計図なので、これだけでは何の実物も生まれない。

英単語の意味を追いかけると「授業の単位」「分類」が出てくるが、ここでは関係ないので無視していい。

インスタンスは設計図からつくった実体

インスタンス(Instance) とは設計図からつくった実物のこと。

設計図にしたがってつくったら、基本的に常に同じ実物がつくられる。ただし設計図には「パラメーター」という設定の余地があって、ここを変えることで違うものをつくれる。

インスタンスの元は、必ずしもクラスではない ことに注意する。プログラミングでは「クラス」から「インスタンス」をつくる構図だが、他のジャンルではそうとは限らないのだ。たとえばクラウドのインフラでは、実際につくったサーバー一台一台をインスタンスと呼ぶが、これの元はクラスとは呼ばない。元に対する名前は無いか、あるいは「イメージ」や「起動テンプレート」だったりする。

オブジェクトは実体

オブジェクト(Object) とは実物のこと。

オブジェクトのうち、設計図からつくったものをインスタンスという。つまり インスタンスはオブジェクトの一種

数式でたとえるのがわかりやすい

y = f(x) = ax + b を考える。

  • クラスとは、ax + b という式のこと
    • a や b は内部の仕様として決まっている
    • ここでは a = 10、b = 5 にしよう
    • つまり、ここではクラスとは 10x + 5 という式
  • インスタンスとは、x というパラメーターに何か入れてつくった値のこと
    • x = 1 を入れた場合、15 がインスタンス
    • x = 100 を入れた場合、1005 がインスタンス
    • x = 1 を 3 回入れたら、15 というインスタンスが 3 回出来上がる
  • オブジェクトとは、数字のこと
    • a や b、あるいは x のときに使った数字ではない
    • 何らかの式から計算された数字のこと

おしまい

イメージはこれくらいで良い。

あとはそれぞれの文脈でどう定義され、どう対応しているかをちゃんと勉強する。

0
0
4

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?