概要

クラスは設計図に過ぎないので、実際にデータを保持して使うには インスタンス (実体) を作る必要がある。$user = new User(); のように new クラス名() を書くと、User の設計図から実体が 1 つ作られて変数に入る。ここから初めて $user->name = "太郎"; のようにプロパティに値を代入し、データを保持できるようになる。

1 つのクラスからインスタンスは 何個でも 作れて、それぞれ独立した状態を持つ。$a = new User();$b = new User(); で 2 つ作り、$a->name = "太郎"; $b->name = "花子"; とすれば、a と b はそれぞれ別の名前を持つ別人として共存する。タイ焼きの型枠 (クラス) から、何個でもタイ焼き (インスタンス) を焼ける、という関係性をここで確認する。

混同しやすいのが 「クラス」と「インスタンス」の用語User (クラス) と $user (インスタンス) は別物で、片方を「ユーザー」と曖昧に呼ぶと議論が滑る。本シリーズでは「クラス = 設計図、インスタンス = 実体」「クラス名は大文字始まり、インスタンスは小文字始まりの変数」という命名規則を意識的に使い分けるので、読み書きするときに区別を付けておく。

学習目標

ドリル

no 内容
01 User インスタンスを 1 つ作って name を出す
02 User インスタンスを 2 つ作って両方の name を出す

演習: ドリル 01 — インスタンスを 1 つ作る

問題

User クラス (プロパティ public string $name;) を定義し、new User() で 1 つインスタンスを作り、name"太郎" を入れて出力してください。

期待される出力:

太郎

ヒント

演習: ドリル 02 — インスタンスを 2 つ作る

問題

User クラス (プロパティ public string $name;) を定義し、new User()2 つ のインスタンスを作ってください。

その後、2 つの name をこの順で出力してください。

期待される出力:

太郎
花子

ヒント

この章を AI に聞く

  1. 「ch02 — new でインスタンスを作る」のつまずきやすいポイントを、初学者向けに3つ教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

  2. 「ch02 — new でインスタンスを作る」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    💬 ChatGPT 📘 Claude ✨ Gemini

  3. 「ch02 — new でインスタンスを作る」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    💬 ChatGPT 📘 Claude ✨ Gemini

🎉 受講お疲れさまでした!

ch02 — new でインスタンスを作る」を読み終えました。
学んだことを誰かに教えると、もっと記憶に残ります。

X で共有 Hatena LINE