いまさら、『型 名前 = 実体』のパターンについて

Dog Pochi = Dog();

この一行で起きていること:

Dog(型): 「これは犬の種類ですよ」と宣言。

Pochi(名前): 「名前はポチですよ」と決める。

Dog()(実体): 「今、新しい犬を一匹生み出しました!」というアクション。

『型 名前 = 実体』のパターン→クラスとインスタンス(型と実体)

「ポチ」を動かす

Pochi.bark();  // ポチ、吠えて!
Pochi.run();   // ポチ、走って!

インスタンスはメソッドを持っていない

インスタンスはデータを持つだけで、メソッドはクラス側にある

インスタンスはそれを「使っているだけ」

クラス
├ メソッド(共有)
└ 設計

インスタンス
└ データだけ違う

Flutterっぽく考えると

Text("こんにちは")

同じ Text クラスから作られた「インスタンス」です

Flutterの画面は、こういったインスタンスの集まりでできています

List<Widget> widgets = [
  Text("A"),
  Text("B"),
];

同じ型のインスタンスを並べています

FlutterのUIはこれでできています!!

🔍 ちょっとだけ深掘り:インスタンスは「コピー」ではない

インスタンスは「クラスから作られる実体」と説明しましたが、
ここで1つだけ大事なポイントがあります。

var a = Person();

var b = a;

このとき、

  • a → Personのインスタンス
  • b → 同じインスタンスを指している(「本体の場所が書かれたメモ」をやり取りしている)

ひとことまとめ

  • クラス → 設計図
  • インスタンス → 実体
  • ただし実体は「コピー」ではなく「本体の場所(住所)が書かれたメモ」をやり取りしている