php面向?qū)ο蟮某绦蛟O(shè)計
PHP 獨特的語法混合了C、Java、Perl以及PHP自創(chuàng)的語法。它可以比CGI或者Perl更快速地執(zhí)行動態(tài)網(wǎng)頁。以下是小編為大家搜索整理的php面向?qū)ο蟮某绦蛟O(shè)計, 希望能給大家?guī)韼椭?更多精彩內(nèi)容請及時關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
public 公有的:本類,子類,外部對象都可以調(diào)用
protected 受保護的:本類 子類,可以執(zhí)行,外部對象不可以調(diào)用
private 私有的:只能本類執(zhí)行,子類與外部對象都不可調(diào)用
面向?qū)ο缶幊痰娜筇攸c
1)封閉性
封閉性,也可以稱為信息隱藏。就是將一個類的使用和實現(xiàn)分開,只保留有限的接口(方法)與外部聯(lián)系。對于用到該類的開發(fā)人員,只要知道這個類如何使用即可,而不用去關(guān)心這個類是如何實現(xiàn)的。這樣做可以讓開發(fā)人員更好地把精力集中起來專注別的事情,同時也避免了程序之間的相互依賴而帶來的不便。
2)繼承性
繼承性就是派生類(子類)自動繼承一個或多個基類(父類)中的屬性與方法,并可以重寫或添加新的屬性和方法。繼承這個特性簡化了對象和類的創(chuàng)建,增加了代碼的可重性。繼承分單繼承和多繼承,PHP所支持的是單繼承,也就是說,一個子類有且只有一個父類。
3)多態(tài)性
多態(tài)性是指同一個類的不同對象,使用同一個方法可以獲得不同的結(jié)果,這種技術(shù)稱為多態(tài)性。多態(tài)性增強了軟件的靈活性和重用性。
類的定義
一個類可以包含有屬于自己的常量,變量(稱為“屬性”)以及函數(shù)(稱為“方法”)。
和很多面向?qū)ο蟮恼Z言一樣,PHP也是通過class關(guān)鍵字加類名來定義類的。類的格式如下:
Class myobject{
//……
}
?>
定義:物以類聚,把具有相似特性的對象歸到一個類中,類定義了這些相似對象擁有的相同屬性和方法。類是相似對象的描述,稱為類的定義,是該類對象的藍(lán)圖或原型。
類的對象稱為類的一個實例。要創(chuàng)建一個類的實例,必須使用 new 關(guān)鍵字。
001ZpQGYty6MeYnSNUh25&690
//類的定義以關(guān)鍵字class開始,類的命名通常以每個單詞第一個字母大寫
class NbaPlayer{
public $name = "Jordan"; //定義屬性
public $height = "198cm";
public $team = "Bull";
public $playerNumber = "23";
//定義方法
public function run(){
echo "Running\n";
}
public function dribblr(){
echo "Dribbling\n";
}
public function pass(){
echo "Passing\n";
}
}
//類到對象的實例化
//類的實例化為對象時使用關(guān)鍵字new,new之后緊跟類的名稱和一對括號
$jordan = new NbaPlayer();
//對象中的`屬性成員可以通過"->"符號來訪問
echo $jordan->name."\n";
//對象中的成員方法可以通過"->"符號來訪問
$jordan->dribble();
$jordan->run();
?>
成員方法
類中的函數(shù)被稱為成員方法。函數(shù)和成員方法唯一的區(qū)別就是,函數(shù)實現(xiàn)的是某個獨立的功能,而成員方法是實現(xiàn)類中的一個行為,是類的一部分。
下面就來擴充上面的myobject類,為它添加一個成員方法,代碼如下:
classmyobject{
function getobjectname($name){
echo "商品名稱為:".$name;
}
}
?>
該方法的作用是輸出商品名稱,商品名稱是通過方法的參數(shù)傳進(jìn)來的。
類是一個抽象的描述,是功能相似的一組對象的集合。如果想用到類中的方法和變量,首先就要把它具體落實到一個實體,也就是對象上。
類常量
既然有變量,當(dāng)然也會有常量了。常量就是不會改變的量,是一個恒值。眾所周知的一個常量就是圓周率Pi。定義常量使用關(guān)鍵字const如:
ConstPI=3.14159;
構(gòu)造函數(shù)
PHP 5 允行開發(fā)者在一個類中定義一個方法作為構(gòu)造函數(shù)。具有構(gòu)造函數(shù)的類會在每次創(chuàng)建新對象時先調(diào)用此方法,所以非常適合在使用對象之前做一些初始化工作。
//類的定義以關(guān)鍵字class開始,類的命名通常以每個單詞第一個字母大寫
class NbaPlayer{
public $name = "Jordan"; //定義屬性
public $height = "198cm";
public $team = "Bull";
public $playerNumber = "23";
//構(gòu)造函數(shù),在對象被實例化的時候自動調(diào)用
function __construct($name,$height,$weight,$team){
echo "It is an NbaPlayer constructor\n";
$this->name = $name;
//$this是PHP里面的偽變量,表示對象自身?梢酝ㄟ^$this->的方式訪問對象的屬性和方法
$this->height = $height;
$this->weight = $weight;
$this->team = $team;
}
//定義方法
public function run(){
echo "Running\n";
}
public function dribblr(){
echo "Dribbling\n";
}
public function pass(){
echo "Passing\n";
}
}
//類到對象的實例化
//類的實例化為對象時使用關(guān)鍵字new,new之后緊跟類的名稱和一對括號
$jordan = new NbaPlayer("Jordan","198cm","98kg","Bull");
//對象中的屬性成員可以通過"->"符號來訪問
echo $jordan->name."\n";
//對象中的成員方法可以通過"->"符號來訪問
$jordan->dribble();
$jordan->run();
//每一次用new實例化對象的時候,都會用類名后面的參數(shù)列表調(diào)用構(gòu)造函數(shù)
$james = new NbaPlayer("James","203cm","120kg","Heat")
echo $james->name."\n";
?>
析構(gòu)函數(shù)
//類的定義以關(guān)鍵字class開始,類的命名通常以每個單詞第一個字母大寫
class NbaPlayer{
public $name = "Jordan"; //定義屬性
public $height = "198cm";
public $team = "Bull";
public $playerNumber = "23";
//構(gòu)造函數(shù),在對象被實例化的時候自動調(diào)用
function __construct($name,$height,$weight,$team){
echo "It is an NbaPlayer constructor\n";
$this->name = $name;
//$this是PHP里面的偽變量,表示對象自身。可以通過$this->的方式訪問對象的屬性和方法
$this->height = $height;
$this->weight = $weight;
$this->team = $team;
}
//析構(gòu)函數(shù),在程序執(zhí)行結(jié)束的時候會自動調(diào)用
//析構(gòu)函數(shù)通常被用于清理程序使用的資源。比如程序使用了打印機,那么可以再析構(gòu)函數(shù)里面釋放打印機資源
function __destruct(){
echo "Destroying".$this->name."\n";
}
//定義方法
public function run(){
echo "Running\n";
}
public function dribblr(){
echo "Dribbling\n";
}
public function pass(){
echo "Passing\n";
}
}
//類到對象的實例化
//類的實例化為對象時使用關(guān)鍵字new,new之后緊跟類的名稱和一對括號
$jordan = new NbaPlayer("Jordan","198cm","98kg","Bull");
//對象中的屬性成員可以通過"->"符號來訪問
echo $jordan->name."\n";
//對象中的成員方法可以通過"->"符號來訪問
$jordan->dribble();
$jordan->run();
//每一次用new實例化對象的時候,都會用類名后面的參數(shù)列表調(diào)用構(gòu)造函數(shù)
$james = new NbaPlayer("James","203cm","120kg","Heat")
echo $james->name."\n";
//通過把變量設(shè)為null,可以觸發(fā)析構(gòu)函數(shù)的調(diào)用
//當(dāng)對象不再使用的時候會觸發(fā)析構(gòu)函數(shù)
$james = null;
echo "from now on James will not be used.\n"
?>
析構(gòu)函數(shù)會在到某個對象的所有引用都被刪除或者當(dāng)對象被顯式銷毀時執(zhí)行。
對象的引用
//類的定義以關(guān)鍵字class開始,類的命名通常以每個單詞第一個字母大寫
class NbaPlayer{
public $name = "Jordan"; //定義屬性
public $height = "198cm";
public $team = "Bull";
public $playerNumber = "23";
//構(gòu)造函數(shù),在對象被實例化的時候自動調(diào)用
function __construct($name,$height,$weight,$team){
echo "It is an NbaPlayer constructor\n";
$this->name = $name;
//$this是PHP里面的偽變量,表示對象自身?梢酝ㄟ^$this->的方式訪問對象的屬性和方法
$this->height = $height;
$this->weight = $weight;
$this->team = $team;
}
//析構(gòu)函數(shù),在程序執(zhí)行結(jié)束的時候會自動調(diào)用
//析構(gòu)函數(shù)通常被用于清理程序使用的資源。比如程序使用了打印機,那么可以再析構(gòu)函數(shù)里面釋放打印機資源
function __destruct(){
echo "Destroying".$this->name."\n";
}
//定義方法
public function run(){
echo "Running\n";
}
public function dribblr(){
echo "Dribbling\n";
}
public function pass(){
echo "Passing\n";
}
}
//類到對象的實例化
//類的實例化為對象時使用關(guān)鍵字new,new之后緊跟類的名稱和一對括號
$jordan = new NbaPlayer("Jordan","198cm","98kg","Bull");
//對象中的屬性成員可以通過"->"符號來訪問
echo $jordan->name."\n";
//對象中的成員方法可以通過"->"符號來訪問
$jordan->dribble();
$jordan->run();
//每一次用new實例化對象的時候,都會用類名后面的參數(shù)列表調(diào)用構(gòu)造函數(shù)
$james = new NbaPlayer("James","203cm","120kg","Heat")
echo $james->name."\n";
//對象的引用用于訪問對象的屬性和方法,$james,$james1和$james2都是對象的引用
//$james和$james1是對象的兩個獨立引用
//$james2是$james的影子,使用對象的同一個引用,任何一個賦值為null相當(dāng)于刪除了同一個引用
$james1 = $james;
$james2 = &$james
$james = null;
echo "from now on James will not be used.\n"
?>
【php面向?qū)ο蟮某绦蛟O(shè)計】相關(guān)文章: