《PHP實(shí)戰(zhàn):php學(xué)習(xí)筆記之面向?qū)ο蟆芬c(diǎn):
本文介紹了PHP實(shí)戰(zhàn):php學(xué)習(xí)筆記之面向?qū)ο螅M麑δ杏谩H绻幸蓡枺梢月?lián)系我們。
PHP實(shí)戰(zhàn)public?? 公有的:本類,子類,外部對象都可以調(diào)用
protected 受掩護(hù)的:本類 子類,可以執(zhí)行,外部對象不可以調(diào)用
private 私有的:只能本類執(zhí)行,子類與外部對象都不可調(diào)用
面向?qū)ο缶幊痰娜筇攸c(diǎn)
PHP實(shí)戰(zhàn)1)關(guān)閉性
PHP實(shí)戰(zhàn)封閉性,也可以稱為信息暗藏.就是將一個類的使用和實(shí)現(xiàn)分開,只保留有限的接口(方法)與外部聯(lián)系.對于用到該類的開發(fā)人員,只要知道這個類如何使用即可,而不用去關(guān)心這個類是如何實(shí)現(xiàn)的.這樣做可以讓開發(fā)人員更好地把精力集中起來專注別的事情,同時也避免了程序之間的相互依賴而帶來的不便.
PHP實(shí)戰(zhàn)2)承繼性
PHP實(shí)戰(zhàn)繼承性就是派生類(子類)自動繼承一個或多個基類(父類)中的屬性與辦法,并可以重寫或添加新的屬性和辦法.繼承這個特性簡化了對象和類的創(chuàng)建,增加了代碼的可重性.繼承分單繼承和多繼承,PHP所支持的是單繼承,也就是說,一個子類有且只有一個父類.
PHP實(shí)戰(zhàn)3)多態(tài)性
PHP實(shí)戰(zhàn)多態(tài)性是指同一個類的不同對象,使用同一個辦法可以獲得不同的結(jié)果,這種技術(shù)稱為多態(tài)性.多態(tài)性增強(qiáng)了軟件的靈活性和重用性.
PHP實(shí)戰(zhàn)類的界說
PHP實(shí)戰(zhàn)一個類可以包含有屬于自己的常量,變量(稱為“屬性”)以及函數(shù)(稱為“辦法”).
和很多面向?qū)ο蟮恼Z言一樣,PHP也是通過class關(guān)鍵字加類名來定義類的.類的格式如下:
PHP實(shí)戰(zhàn)定義:物以類聚,把具有相似特性的對象歸到一個類中,類定義了這些相似對象擁有的相同屬性和辦法.類是相似對象的描述,稱為類的定義,是該類對象的藍(lán)圖或原型.
PHP實(shí)戰(zhàn)類的對象稱為類的一個實(shí)例.要創(chuàng)建一個類的實(shí)例,必需使用 new 關(guān)鍵字.
001ZpQGYty6MeYnSNUh25&690
PHP實(shí)戰(zhàn)??????? //定義辦法
??? public function run(){
??????? echo "Running\n";
??? }
??? public function dribblr(){
??????? echo "Dribbling\n";
??? }
??? public function pass(){
??????? echo "Passing\n";
??? }
}
??? //類到對象的實(shí)例化
??? //類的實(shí)例化為對象時使用關(guān)鍵字new,new之后緊跟類的名稱和一對括號
??? $jordan = new NbaPlayer();?
PHP實(shí)戰(zhàn)??? //對象中的屬性成員可以通過"->"符號來拜訪
??? echo $jordan->name."\n";
PHP實(shí)戰(zhàn)??? //對象中的成員方法可以通過"->"符號來拜訪
??? $jordan->dribble();
??? $jordan->run();
?>
PHP實(shí)戰(zhàn)成員辦法
PHP實(shí)戰(zhàn)類中的函數(shù)被稱為成員辦法.函數(shù)和成員辦法唯一的區(qū)別就是,函數(shù)實(shí)現(xiàn)的是某個獨(dú)立的功能,而成員辦法是實(shí)現(xiàn)類中的一個行為,是類的一部分.
下面就來擴(kuò)充上面的myobject類,為它添加一個成員辦法,代碼如下:
PHP實(shí)戰(zhàn)該辦法的作用是輸出商品名稱,商品名稱是通過辦法的參數(shù)傳進(jìn)來的.
類是一個抽象的描述,是功能相似的一組對象的集合.如果想用到類中的辦法和變量,首先就要把它具體落實(shí)到一個實(shí)體,也就是對象上.
PHP實(shí)戰(zhàn)類常量
既然有變量,當(dāng)然也會有常量了.常量便是不會改變的量,是一個恒值.眾所周知的一個常量便是圓周率Pi.定義常量使用關(guān)鍵字const如:
ConstPI=3.14159;
PHP實(shí)戰(zhàn)構(gòu)造函數(shù)
PHP實(shí)戰(zhàn)PHP 5 允行開發(fā)者在一個類中定義一個辦法作為構(gòu)造函數(shù).具有構(gòu)造函數(shù)的類會在每次創(chuàng)建新對象時先調(diào)用此辦法,所以非常適合在使用對象之前做一些初始化工作.
PHP實(shí)戰(zhàn)??????? //構(gòu)造函數(shù),在對象被實(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;
??????? }
PHP實(shí)戰(zhàn)??????? //定義辦法
??? public function run(){
??????? echo "Running\n";
??? }
??? public function dribblr(){
??????? echo "Dribbling\n";
??? }
??? public function pass(){
??????? echo "Passing\n";
??? }
}
??? //類到對象的實(shí)例化
??? //類的實(shí)例化為對象時使用關(guān)鍵字new,new之后緊跟類的名稱和一對括號
??? $jordan = new NbaPlayer("Jordan","198cm","98kg","Bull");???
PHP實(shí)戰(zhàn)??? //對象中的屬性成員可以通過"->"符號來拜訪
??? echo $jordan->name."\n";
PHP實(shí)戰(zhàn)??? //對象中的成員方法可以通過"->"符號來拜訪
??? $jordan->dribble();
??? $jordan->run();
PHP實(shí)戰(zhàn)??? //每一次用new實(shí)例化對象的時候,都會用類名后面的參數(shù)列表挪用構(gòu)造函數(shù)
??? $james = new NbaPlayer("James","203cm","120kg","Heat")
??? echo $james->name."\n";
?>
PHP實(shí)戰(zhàn)析構(gòu)函數(shù)
PHP實(shí)戰(zhàn)析構(gòu)函數(shù)會在到某個對象的所有引用都被刪除或者當(dāng)對象被顯式銷毀時執(zhí)行.
PHP實(shí)戰(zhàn)工具的引用
PHP實(shí)戰(zhàn)??????? //構(gòu)造函數(shù),在對象被實(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;
??????? }
PHP實(shí)戰(zhàn)??????? //析構(gòu)函數(shù),在程序執(zhí)行結(jié)束的時候會自動調(diào)用
??????? //析構(gòu)函數(shù)通常被用于清理程序使用的資源.好比程序使用了打印機(jī),那么可以再析構(gòu)函數(shù)里面釋放打印機(jī)資源
??????? function __destruct(){
??????????? echo "Destroying".$this->name."\n";
??????? }
PHP實(shí)戰(zhàn)??????? //定義辦法
??? public function run(){
??????? echo "Running\n";
??? }
??? public function dribblr(){
??????? echo "Dribbling\n";
??? }
??? public function pass(){
??????? echo "Passing\n";
??? }
}
??? //類到對象的實(shí)例化
??? //類的實(shí)例化為對象時使用關(guān)鍵字new,new之后緊跟類的名稱和一對括號
??? $jordan = new NbaPlayer("Jordan","198cm","98kg","Bull");???
PHP實(shí)戰(zhàn)??? //對象中的屬性成員可以通過"->"符號來拜訪
??? echo $jordan->name."\n";
PHP實(shí)戰(zhàn)??? //對象中的成員方法可以通過"->"符號來拜訪
??? $jordan->dribble();
??? $jordan->run();
PHP實(shí)戰(zhàn)??? //每一次用new實(shí)例化對象的時候,都會用類名后面的參數(shù)列表挪用構(gòu)造函數(shù)
??? $james = new NbaPlayer("James","203cm","120kg","Heat")
??? echo $james->name."\n";
PHP實(shí)戰(zhàn)??? //對象的引用用于拜訪對象的屬性和方法,$james,$james1和$james2都是對象的引用
??? //$james和$james1是對象的兩個獨(dú)立引用
??? //$james2是$james的影子,使用對象的同一個引用,任何一個賦值為null相當(dāng)于刪除了同一個引用
??? $james1 = $james;
??? $james2 = &$james
PHP實(shí)戰(zhàn)??? $james = null;
??? echo "from now on James will not be used.\n"
必修>
《PHP實(shí)戰(zhàn):php學(xué)習(xí)筆記之面向?qū)ο蟆肥欠駥δ袉l(fā),歡迎查看更多與《PHP實(shí)戰(zhàn):php學(xué)習(xí)筆記之面向?qū)ο蟆废嚓P(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/14186.html