<?php /******************************************* Class 對象執行個體說明( 普通類 ) *******************************************/ class ClassDemo{ public $PublicVar; private $PrivateVar;//私人變數 外部不能調用 protected $ProtectedVar;//受保護變數 外部與子類不可訪問 public static $StaticVar=0;//static 靜態變數 靜態方法 不能訪問非靜態方法與變數,非靜態方法與變數可以訪問靜太方法與變數 const constVar='';//當你有一個屬性,不希望被修改,則考慮使用const 做成常量,使用 類名::常量名; 介面名::常量 /* 1.常量在定義的時候需要賦初值 2.常量不能修改. 3.常量名不能有 $, 一般是大寫, 預設是public 4.常量在類的內部使用 self::常量的名稱 類名::常量的名稱 */ public function __construct( /*$name*/ ){//這個可以帶參數,帶了參數之後必建立時必須也帶有參數,不然會出錯 //$this->PublicVar=$name; //self::$StaticVar++;//靜態變數內部存取方法 外部存取方法 對象名::變數名( ClassDemo::$StaticVar ) $this->PublicVar='$PublicVar'; $this->PrivateVar='$PrivateVar'; $this->ProtectedVar='$ProtectedVar'; self::$StaticVar++; echo "ClassDemo __construct<br />"; } public function __destruct(){//解構函式 } final public function fun(){ /* final 關鍵字( PHP5 中出現 ) 希望方法不被其它的類繼承時間覆蓋, 可以使用final 當這個關鍵字用來修飾類的時候,那麼這個類將不可被其它類給繼承(可以執行個體化) 注:此關鍵字不能用於修飾變數 */ } }//End Class /******************************************* Class 對象執行個體說明( 抽象類別 ) *******************************************/ abstract class AbstractDemo{ /*************************************** 1.抽象類別不能被執行個體化 2.抽象類別不一定要包含abstract方法。 也就是說抽象類別可以沒有abstract方法 3.一旦包含了abstract方法,則這個類必須 聲明為abstract 4.抽象類別不能有函數體 5.如果一個類繼續了某個抽象類別,則他必須實現 該抽象類別的所有抽象方法。(除非它自己也聲明為抽象類別) ***************************************/ } /******************************************* Class 對象執行個體說明( 繼承類 ) *******************************************/ class DemoTwo extends ClassDemo{ } /******************************************* Class 對象執行個體說明( 介面 ) *******************************************/ interface Face{ /********************************* 1.當一個類實現了 某個介面,則要求該類必須實現這個介面的所有方法 2.介面的方法都不能有方法體 3.不能去執行個體化一個介面 4.介面中可以有屬性,但是必須是常量,並且是public 什麼情況下使用介面 1.定規範 2.定下規範,讓別的程式員來實現,比如: **********************************/ public function Name(); } interface Face2 extends Face{ /******************************* 繼承介面 繼承介面時候不用去實現父介面的方法 ********************************/ const namevar=20; } class Demo implements Face2{ /********************************** 實現介面,可以同時實現多個介面 當一個類去實現了某些介面,則必須把所有介面的方法,都實現 **********************************/ public $Name1=0; public function Name(){ echo Face2::namevar; } } ?> |