クラス(class) インスタンス(instance) コンストラクタ(construct) PHP

なわて投稿サムネイル

オブジェクト指向プログラミング

オブジェクト指向プログラミング

Object-oriented programming

プログラミングにおける対象をオブジェクト(もの)のように捉えること。

 

クラス 【class】 設計図・雛形

PHPにおけるオブジェクト指向を実現するための枠組み(設計図・雛形)。

関係している変数と関数を1グループとして定義した枠組み(設計図・雛形)。

関係する変数と関数を1グループとして関連付けすることにより、縛り(ルール)は増えるが、秩序を作ることができる。

この秩序があるおかげで後々デバックや管理において役立つ。

クラスに属する

変数 → プロパティ(クラス内で定義された変数)

関数 → メソッド(クラス内で処理を行う関数)

構文

class クラス名
{
// プロパティの宣言
public $プロパティ名 = ‘値’;

// メソッドの宣言
public function メソッド名() {
実行処理内容;
}
}

インスタンス【 instance 】

instance:実体

クラス(枠組み・設計図・雛形)を基づいて複製し生成した枠組みをインスタンス(オブジェクト)。

省略表現:オブジェクトの生成。

 

構文

インスタンス名(オブジェクト変数)=new クラス名(引数,引数,,,)

プロパティの呼び出し

構文

インスタンス名(オブジェクト変数)-> プロパティ名;

※プロパティ名に$はつけない。
メソッドの呼び出し

構文

インスタンス名(オブジェクト変数)-> メソッド名();

コンストラクタ【construct】

construct:構成体

働き

プロパティを初期化する。

※初期化処理が不要な場合は、コンストラクタは省略可能。

インスタンス化の際に実行される特別なメソッド。

コンストラクタは、インスタンスを初期化するためのメソッド。

重要;コンストラクタは初期化だけで、返り値を返す必要はなく返してはいけない

構文

アクセス修飾子 function __construct(データ型 $変数名 , データ型 $変数名){
$this->変数名 = $変数名;
$this->変数名 = $変数名;
}

コード

<?php

//クラスの定義

Class CakeShop{
    public $name;
    public $price;
    public $earnings;
    public function ear() {
        $answer=$this->price * $this->earnings;
        //現在のインスタンスを指す
        echo $answer;
    }
}

//インスタンスの生成
$strawberry = new CakeShop();
$strawberry->name = "イチゴショート";
$strawberry->price = 500;
$strawberry->earnings = 10;

//プロパティとメソッドの呼び出し
echo $strawberry->name;
$strawberry->ear();

//インスタンスの生成
$marron = new CakeShop();
$marron->name = "マロンケーキ";
$marron->price = 400;
$marron->earnings = 10;

//プロパティとメソッドの呼び出し
echo $marron->name;
$marron->ear();

?>

<?php
echo 'コンストラクタを使用した場合'
?>

<?php
//クラスの定義

Class CakeShop2{
    public $name2;
    public $price2;
    public $earnings2;

    //コンストラクタの定義
    public function __construct(int $price2, int $earnings2){
        $this->price2 = $price2;
        $this->earnings2 = $earnings2;
    }
  //コンストラクタの定義終わり

    public function ear2() {
        $answer2=$this->price2 * $this->earnings2;
        //現在のインスタンスを指す
        echo $answer2;
    }
}

//インスタンスの生成
$strawberry2 = new CakeShop2(500,10);
$strawberry2->name2 = "イチゴショート";

//プロパティとメソッドの呼び出し
echo $strawberry2->name2;
$strawberry2->ear2();

//インスタンスの生成
$marron2 = new CakeShop2(400,10);
$marron2->name2 = "マロンケーキ";


//プロパティとメソッドの呼び出し
echo $marron2->name2;
$marron2->ear2();

?>