【Aモデル録 フェーズ1 C#基礎】
― 同じもの?違うもの?問題の正体 ―
👉 オブジェクトとは、「プログラム中に実際に存在している“実体”」です。
・・・え?さっき聞きませんでした?
「それ、"インスタンス"じゃなかったっけ?」
インスタンスは、
「ある class(型)から作られた1つの具体例」
という 所属・関係性 に注目した言葉。
「何の?」に答える言葉
Dog のインスタンス
User のインスタンス
👉 型との関係視点
「このクラスから作られたものですよ」
クラスとの 関係性 を強調
オブジェクトは、
「プログラム中に実際に存在している“実体”」
という 存在そのもの に注目した言葉。
メモリ上にある
状態を持つ
使われる対象
👉 モノ視点
「今、操作している“モノ”ですよ」
プログラム上の 役割 を強調
C#は、場面によって
言葉を使い分けて話す文化 を持っています。
オブジェクト と インスタンスは、
指している“実体”は同じです。
違うのは、
👉 見ている角度(視点)と言葉の使いどころ。
ここが分からないまま進むと、
無限ループ に入ります(笑)
Something s = new Something();
このとき起きていること:
new Something()
👉 メモリ上に「実体」が作られる
s
👉 その実体を指す ラベル(変数)
この
「new によって作られた実体」
これが、「インスタンス」の回で掴んだもの。
👉 これは 正しい
👉 何も間違っていない
同じその実体を、
別の文脈で呼んだ名前です。
| 呼び方 | 何を強調している? |
|---|---|
| インスタンス | クラスから作られた「個体」であること |
| オブジェクト | プログラム上の「モノ」として扱うこと |
👉 実体は1つ
👉 呼び名が違う
ちょっと難解だけど、ここは我慢。
講義側の本音:
「実体は同じだから、
ここで詰まって欲しくない」
でも、Aモデル受講者は、大抵
「じゃあ、
インスタンスで覚えた“実体”って何!?」
と、なります。
👉 だからこの回が 必要。
new で作られた実体
→ 技術的に言うと「インスタンス」
→ プログラム上のモノとして言うと「オブジェクト」
これでOKです。
実体は 1つ
呼び名が 2つ
あまり深く考えてはいけません。
ちょっと混乱するけど、大丈夫。