見出し画像

プログラミング学習日記-56日目

Progate PHP学習コースⅡ

□オブジェクト指向

オブジェクトは「もの」、指向は「〜を中心に」という意味。

例えばECサイトも「商品」、「ユーザー」、「カート」などのオブジェクトが組み合わさって出来ている。


□クラス(設計図)

オブジェクト指向では「クラス」というオブジェクトの設計図を作成し、それを元にオブジェクト(実体)を生成する。

<?php
   class Menu {
      //クラスの内容を書く
}
?>


□インスタンス

クラス(設計図)を元に生成された実体を「インスタンス」と呼ぶ。

インスタンスは「new」を用いて「new クラス名()」で生成できる。

<?php
   class Menu {
      //クラスの内容を書く
}
$menu1 = new Menu();
$menu2 = new Menu();
$menu3 = new Menu();

?>

「$変数名 = new クラス名()」のように代入。
インスタンス生成はクラスの外で行う。


□プロパティ

クラス(設計図)の中身。

クラスにはそのインスタンス(実体)が持つ「プロパティ」と「メソッド」の2つを定義する。

プロパティ → インスタンスが持つデータ
メソッド → インスタンスに関する処理(関数)


□プロパティの書き方

「public $プロパティ名」
のように定義。

<?php
   class Menu {
      public $name;
}


□プロパティへのアクセス
「インスタンス -> プロパティ名」とする事で、そのインスタンスのプロパティにアクセスすることができる。(プロパティ名に$は不要)

<?php
   class Menu {
      public $name;
}
$curry = new Menu();
$curry -> name = "CURRY";
echo $curry -> name;

//結果 CURRY


□メソッド

それぞれのインスタンスが持つ関数のこと。
メソッドは「public function メソッド名()」のように定義する。

また、「インスタンス -> メソッド名()」のようにメソッドにアクセス(呼び出す)することが出来る。

<?php
   class Menu {
      public function hello() {
          echo '私はMenuインスタンスです。'
   }

}
$curry = new Menu();
$curry -> hello();
//結果 : 
私はMenuインスタンスです。


□$this

メソッド内でインスタンスのプロパティやメソッドにアクセスしたい時には「$this」という特殊な変数を使う。

$thisはクラス内のメソッドの定義の中でのみ使用。

class Menu {
      public $name;
      public function hello() {
          echo '私の名前は'.$this -> name.'です';
   }
$curry = new Menu();
$curry -> name = 'CURRY'
$curry -> hello();
//結果 : 
私の名前はCURRYです


□コンストラクタ

「__construct」という特別なメソッドを定義すると、newを用いてインスタンスを生成する時にこのメソッドが自動的に呼ばれる。

class Menu {
      public function __construct() {
          //コンストラクタ内で行いたい処理
   }


ややこしい。

何度も繰り返して、会得していきます^_^

息子にラムネ買います^_^