高階特性
包括:1.靜態方法和屬性(通過類而不是物件來訪問資料和功能)
2.抽象類和介面(設計,實現分離)
3.錯誤處理(異常)
4.final類和方法(限制繼承)
5.***(自動委託)
6.析構方法(物件銷毀前的清理工作)
7.轉殖物件(建立物件的副本)
8.把物件解析成字串
ps,學會從記憶體的角度看**。想象計算機的微觀世界。
靜態方法的小例子
<?phptips:class
staticexample
}print staticexample::$anum."
";staticexample::sayhello();
1.靜態方法不能訪問類中的普通屬性,因為那些屬性屬於乙個物件,但可以訪問靜態屬性。
2.我們不能再物件中呼叫靜態方法,因此不能再靜態方法中使用偽變數$this。
靜態方法的大例子
<?phpclass
shopproduct
public
function setid($id
)
public
static
function getinstance($id,pdo $pdo
)
if($row['type'] == "book")
else
if($row['type'] == "cd")
else
$product->setid($row['id']);
$product->setdiscount($row['discount']);
return
$product
; }
public
function
getproducerfirstname()
public
function
getproducermainname()
public
function setdiscount($num
)
public
function
getdiscount()
public
function
gettitle()
public
function
getprice()
function
getproducer()
function
getsummaryline(),";
$base .= ")";
return
$base
; }
}class cdproduct extends
shopproduct
function
getplaylength()
function
getsummaryline()";
return
$base
; }
}class bookproduct extends
shopproduct
function
getnumpages()
function
getsummaryline()";
return
$base
; }
}$dsn = "sqlite:c:/users/administrator/desktop/shop.db";
$pdo = new pdo($dsn,null,null
);$pdo->setattribute(pdo::attr_errmode,pdo::errmode_exception);
$obj = shopproduct::getinstance(1,$pdo
);echo
$obj->getsummaryline();
深入PHP物件導向 模式與實踐 高階特性(4)
final關鍵字可以終止類的繼承。final類不能有子類,final方法不能被覆寫。下面定義乙個final類 final class checkout class illegalcheckout extends checkout 將產生致命錯誤 如果只在checkout中宣告某個類方法為final,...
PHP設計模式之 高階工廠模式
php設計模式 工廠模式 建立型 乙個工廠製造多種商品 inte ce product 定義乙個獲取製造出來的產品的介面 inte ce product class creator describe 定義乙個創造產品的抽象類 author nick abstract class creator cl...
php物件的高階特性
物件比較,當同乙個類的兩個例項的所有屬性都相等時,可以使用比較運算子 進行判斷,當需要判斷兩個變數是否為同乙個物件的引用時,可以使用全等運算子 進行判斷。class car a new car b new car if a b echo true if a b echo false 物件複製,在一些...