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 → 同じインスタンスを指している(「本体の場所が書かれたメモ」をやり取りしている)
ひとことまとめ
- クラス → 設計図
- インスタンス → 実体
- ただし実体は「コピー」ではなく「本体の場所(住所)が書かれたメモ」をやり取りしている
