php面向對象程序設計
類:定義一件事物的抽象特點。
對象:類的 實例。
成員變量 − 定義在類內部的變量。該變量的值對外是不可見的,但是可以通過成員函數訪問,在類被實例化為對象后,該變量即可稱為對象的屬性。var關鍵字定義成員變量。
多態:相同的函數或方法可作用于多種類型對象產生不同結果。
封裝:現實世界中存在的某個客體的屬性和行為綁定在一起,并放置在一個邏輯單元中。
構造函數:創建對象是初始化對象,為對象成員變量賦初始值,與new運算符一起使用在創建對象的語句中。
定義類:
<?php class site(){ /* 成員變量 */ var $url; var $title; /* 成員函數 */ function setUrl($par){ $this->url = $par; } function getUrl(){ echo $this->url . PHP_EOL; } } ?>
類的變量使用 var 來聲明, 變量也可以初始化值。
函數定義類似 PHP 函數的定義,但函數只能通過該類及其實例化的對象訪問。
變量 $this 代表自身的對象。
創建對象:
$baidu = new site; $taobao = new site;
調用成員方法:
$baidu->setUrl("www.baidu.com"); $baidu->getUrl();
構造方法:
function __construct($baidu){ $this->url = $baidu; }
現在可以這樣實例化對象:
$baidu = new site("www.baidu.com"); //調用成員函數 $baidu->getUrl()
方法重寫:
// 從父類繼承的方法不能滿足子類時,可以對方法進行重寫覆蓋(override) function getUrl() { echo $this->url . PHP_EOL; return $this->url; }
訪問控制:
public 公有公有的類成員可以在任何地方被訪問。protected 受保護受保護的類成員則可以被其自身以及其子類和父類訪問。private 私有私有的類成員則只能被其定義所在的類訪問。(繼承類也不能訪問)
static關鍵字:
聲明方法或類屬性為static,可以不實例化而直接訪問。靜態屬性不能通過一個類已實例化的對象來訪問(但靜態方法可以)。
Final關鍵字:
如果父類中的方法被聲明final,則子類不能覆蓋該方法(重寫);如果類被聲明final則該類不能被繼承。
調用父類的構造方法:
PHP 不會在子類的構造方法中自動的調用父類的構造方法。要執行父類的構造方法,需要在子類的構造方法中調用 parent::__construct() 。
<?php class base{ function __construct(){ print "base類構造方法".PHP_EOL; } } class sub extends base{ function __construct() { parent::__construct();// 子類不能自動繼承父類構造方法 print "子類sub的構造方法".PHP_EOL; } } // 調用base構造方法 $obj1 = new base(); // 調用base、sub構造方法 $obj2 = new sub(); ?>
到此這篇關于php面向對象程序設計的文章就介紹到這了,更多相關php面向對象內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!
相關文章: