ch04 7章中 4章目

ch04 — メソッドを定義して呼ぶ

スライドで見る

この章を AI と学ぶ

💬 AI に聞く質問例 3 件
  1. 「ch04 — メソッドを定義して呼ぶ」のつまずきやすいポイントを、初学者向けに3つ教えてください

    ChatGPT Claude Gemini

  2. 「ch04 — メソッドを定義して呼ぶ」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    ChatGPT Claude Gemini

  3. 「ch04 — メソッドを定義して呼ぶ」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    ChatGPT Claude Gemini

概要

メソッド (method) は クラスの中に定義された関数 で、そのクラスのインスタンスが「できる動作」を表す。User クラスに greet() メソッドを書けば、$user->greet() の形で呼び出せる。書き方は通常の関数と同じく function 名前() { ... } を使い、クラスの { } の中に並べる。データだけ持っていたインスタンスが、これで「振る舞い」も持てるようになる。

メソッドの呼び出しは インスタンス->メソッド名() の形で、プロパティ (->prop) と同じ -> を使うが「() が付くかどうか」で区別される。$user->name はプロパティ、$user->greet() はメソッド呼び出しになる。メソッドにも引数を渡せて ($user->add(5))、関数と同じ感覚で値を受け取れる。

このチャプターでは $this をまだ使わない。プロパティを更新したいときは外から $user->age = 25; のように直接代入する形で扱い、メソッドの中身は固定文言の出力や引数の演算結果の出力に留める。「メソッド呼び出しのリズム」を先に体に入れて、次の章 ($this) でメソッド内からプロパティを参照するパターンに進む。

学習目標

  • クラスの { } の中に function 名前() { ... } を書ける
  • $obj->method() でメソッドを呼べる
  • メソッドにも引数を渡せる

ドリル

no 内容
01 引数なしの greet() メソッドで「こんにちは」と出す
02 引数ありの add(int $n) メソッドで age を更新する

$this はまだ使わない。プロパティ更新は外から $obj->age = ... で行う。$this は ch05 で扱う。

解説スライド 全 6 枚

右の ボタン キー(またはスワイプ)で次のスライドに進めます。 下の「縦表示」を開くと全スライドを一気に読めます。

  1. メソッドを定義する

    Lesson 8 / Chapter 4

  2. メソッドは「クラスの中に書く関数」

    <?php
    class User {
        public function greet(): void {
            echo "こんにちは\n";
        }
    }
    
    $u = new User();
    $u->greet();   // → こんにちは
    • クラスの { } の中に function 名前() { ... } を書く
    • 関数 (L7) と同じ書き方だが、所属するクラスがある点が違う
    • public を付けると外から呼べる (ch07 で詳しく)
  3. 呼び出しは $obj->method()

    <?php
    class Book {
        public function show(): void {
            echo "本のメソッドが呼ばれた\n";
        }
    }
    
    $b = new Book();
    $b->show();
    • プロパティと同じ -> を使う
    • 末尾に () を付ける (引数なしでも省略不可)
    • $obj->method; のように () を忘れるとメソッドが 実行されない
  4. 引数も渡せる

    <?php
    class Calc {
        public function add(int $a, int $b): int {
            return $a + $b;
        }
    }
    
    $c = new Calc();
    echo $c->add(3, 5) . "\n";  // → 8
    • 関数 (L7) と同じく型を付けられる
    • return で値を返す
    • 戻り値が無い時は : void を付ける慣習
  5. 同じクラスから作ったインスタンスはどれも同じメソッドを持つ

    <?php
    $a = new User();
    $b = new User();
    
    $a->greet();   // こんにちは
    $b->greet();   // こんにちは
    • メソッドは 設計図に書かれた手順 なので、どのインスタンスから呼んでも同じ振る舞いをする
    • インスタンスごとに 動きを変えたい 時は $this を使う (ch05)
  6. このチャプターでできるようになること

    ✅ クラス内に function 名前() { ... } でメソッドを書ける ✅ $obj->method() でメソッドを呼べる ✅ メソッドにも引数と戻り値の型を付けられる ✅ 同じクラスから作ったインスタンスはどれも同じメソッドを持つと言える

    → ドリルへ

1 / 6
📜 スライドを全部一気に読む(縦表示)

Lesson 8 / Chapter 4


メソッドは「クラスの中に書く関数」

<?php
class User {
    public function greet(): void {
        echo "こんにちは\n";
    }
}

$u = new User();
$u->greet();   // → こんにちは
  • クラスの { } の中に function 名前() { ... } を書く
  • 関数 (L7) と同じ書き方だが、所属するクラスがある点が違う
  • public を付けると外から呼べる (ch07 で詳しく)

呼び出しは $obj->method()

<?php
class Book {
    public function show(): void {
        echo "本のメソッドが呼ばれた\n";
    }
}

$b = new Book();
$b->show();
  • プロパティと同じ -> を使う
  • 末尾に () を付ける (引数なしでも省略不可)
  • $obj->method; のように () を忘れるとメソッドが 実行されない

引数も渡せる

<?php
class Calc {
    public function add(int $a, int $b): int {
        return $a + $b;
    }
}

$c = new Calc();
echo $c->add(3, 5) . "\n";  // → 8
  • 関数 (L7) と同じく型を付けられる
  • return で値を返す
  • 戻り値が無い時は : void を付ける慣習

同じクラスから作ったインスタンスはどれも同じメソッドを持つ

<?php
$a = new User();
$b = new User();

$a->greet();   // こんにちは
$b->greet();   // こんにちは
  • メソッドは 設計図に書かれた手順 なので、どのインスタンスから呼んでも同じ振る舞いをする
  • インスタンスごとに 動きを変えたい 時は $this を使う (ch05)

このチャプターでできるようになること

✅ クラス内に function 名前() { ... } でメソッドを書ける ✅ $obj->method() でメソッドを呼べる ✅ メソッドにも引数と戻り値の型を付けられる ✅ 同じクラスから作ったインスタンスはどれも同じメソッドを持つと言える

→ ドリルへ

この章で取り組む 演習問題の流れ (2ステップ)
  1. 01 ドリル 01 — greet メソッドを呼ぶ README.md starter.php answer.php
  2. 02 02-method-with-arg starter.php answer.php

演習問題の詳細

この章の演習問題の内容を読めます。実際に手元で解くには教材リポジトリを clone してください。

ドリル 01 — greet メソッドを呼ぶ

問題

User クラスを定義してください。

  • public function greet(): void というメソッドを 1 つ持つ
  • このメソッドは "こんにちは\n"echo するだけ

new User() でインスタンスを作り、greet() を呼んで出力してください。

期待される出力:

こんにちは

ヒント

  • function はクラスの { } の中に書く
  • 呼び出しは $u->greet(); のように () を忘れない
  • まだ $this は使わない。固定の文字列を echo するだけ

🧪 ブラウザで試す

スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。

PHP ランタイム未読込

          

        

演習問題(2問)

  1. ドリル 01 — greet メソッドを呼ぶ

    README.md starter.php answer.php

  2. 02-method-with-arg

    starter.php answer.php

サイト内で問題文・雛形・解答例を確認できます。実際に手元で解くには教材リポジトリを clone してください。

完了にすると進捗に反映されます