P-8. オブジェクト指向を覚える-1

オブジェクト型の使い方

「モノ(オブジェクト)」の設計図(クラス)を作って、それを組み立てて(インスタンス化して)、動かす仕組みのことです。

たとえば、「猫」という設計図(クラス)を作ると、「タマ」「ミケ」などの実物(インスタンス)を作ることができます。

これにより、「デバッグ」「メンテナンス」「コード利用」を容易にし複雑なシステムを、正規化・標準化できるようにしています。

オブジェクト型 はデータ構造(プロパティ) と 関数(メソッド) が合わさった型になります。

クラスとインスタンス(基礎)

✅ クラスとは?

「プロパティ(データ)」と「メソッド(処理)」をセットにした“設計図”です。

記述内容を実際にWebサーバに出してみよう!

✅ インスタンスとは?

クラスを元にして作った「実物」です。new を使って作ります。

🔷 アクセス修飾子(public / private / protected)

修飾子アクセスできる範囲
publicどこからでもアクセスOK
protectedクラス自身と継承したクラスからOK
privateクラス自身のみOK(外からはアクセス不可)

記述内容を実際にWebサーバに出してみよう!

🔷 コンストラクタ(__construct)

インスタンスを作った直後に、自動で呼ばれる特別なメソッドです。

🔷 メソッド(関数)

クラス内で定義される関数のこと。オブジェクトに「ふるまい(機能)」を与えます。

🔷 クラスの継承

あるクラスをベースに、新しいクラスを作る機能。共通の機能を再利用できます。

補足

classを継承するためには「extends」キーワードを使用します。

class 子クラス名 extends 親クラス { }

praivate function(){} と記述して、継承しても使用できません。publicをつかってください。

🔷 カプセル化(encapsulation)

内部の状態(プロパティ)をprivateにして、必要な処理だけをpublicで公開し、外部からの不正アクセスや変更を防ぎます。

記述内容を実際にWebサーバに出してみよう!

🔷 実践:複数の投稿を扱うクラス

記述内容を実際にWebサーバに出してみよう!

✅ まとめ

用語意味
クラス設計図
インスタンス実物(オブジェクト)
プロパティオブジェクトが持つデータ
メソッドオブジェクトができること(関数)
アクセス修飾子アクセスできる範囲を制限するキーワード
コンストラクタnewされたときに自動実行される関数
継承他のクラスの機能を引き継ぐ
カプセル化内部のデータを守る考え方

課題

以下の仕様に従い、Personクラスを継承して、

**患者クラス(Patient)**

を作成してください。患者情報を保持し、自己紹介や標準体重の計算を行うクラスを設計します。

正しく表示されていることを確認できましたら

GitHubにPushしてマージリクエストしてレビューをかけてください。

目的:
  • PHPの「クラス定義」「継承」「カプセル化(private)」「コンストラクタ」「メソッド定義」などの基本構文を理解する。
  • 親クラスのプロパティやメソッドを活用できるようになる。
  • selfIntroduction() などのメソッドを再利用して出力を組み立てる練習をする。

ファイル構成

実装指示

✅ 1. Person.php を作成しよう

以下のプロパティ・メソッドを持つクラス Person を作成:

✅ 2. Patient.php を作成しよう

Person クラスを継承した Patient クラスを作成し、以下のプロパティとメソッドを追加してください:

■ プロパティ(private)
  • height(身長m)
  • weight(体重kg)
■ コンストラクタ
  • Patient クラスの __construct() で、親クラスの __construct() を呼び出し、
    heightweight も初期化する。
■ メソッド
  • getHeight():身長を返す
  • getWeight():体重を返す
  • calculateStandardWeight():身長(m)を元に標準体重(22 × 身長 × 身長)を返す
出力例(index.php)

表示結果の例:

ヒント

privateで宣言したプロパティ($name, $age, $gender)は、外から直接アクセスできないため、

コンストラクタで値を代入します。

性別は「m」なら男性、「f」なら女性、それ以外は「不明」と表示します。

Patient.php を作成しよう

atient クラスでは、Person クラスを継承します(extends を使う)

親クラスのコンストラクタは parent::__construct(...) で呼び出します。

身長(m)と体重(kg)は自分のクラスで新しくプロパティとして定義します。

参考

課題・復習用検索キーワード

検索例
🔍php require 役割
🔍php $this-> とは
🔍php IT デバッグ