面向对象编程基础 (一)
面向過程的基礎(chǔ)是一句一句的代碼,而面向?qū)ο蟮幕A(chǔ)則是對象,對象則由類的實例而來。
類的定義:具有相同的屬性定義和行為表現(xiàn)的事物的集合。
類是變量(變的屬性)與作用于這些變量的函數(shù)(類的方法)的集合,屬性與方法是構(gòu)成類的基礎(chǔ)。
1、類的封裝
類是變量與作用于變量的函數(shù)的集合,那么創(chuàng)建類就離不開變量和函數(shù)。
為類添加屬性就是向類中加入新的變量,可以使用public、protected和private關(guān)鍵字來定義。使用public修飾的變量可以在類外部被訪問,使用protected 和private修飾的變量則不可在類外部被訪問。
為類添加方法就是向類中增加函數(shù),調(diào)用類的方法就是執(zhí)行其中的函數(shù)。要實現(xiàn)為類添加方法,只需向類中加入新的函數(shù)即可。
如果在函數(shù)中要引用類本身的屬性或方法,這時必須使用偽變量$this加上引用的屬性或方法名,才能實現(xiàn)功能。
2、類的繼承
通常需要這樣一些類,這些類與其他現(xiàn)有的類擁有相同的變量和函數(shù)。
通過擴展或派生出來的類擁有基類或父類的所有變量和函數(shù),并包含所有派生類中定義定義的部分。同時,擴充類總是依賴一個單獨的基類,也即不支 持多重繼承。
語法:class 子類 extends 父類
需要注意的是,使用public和protected修飾的屬性和方法可以被子類繼承,而使用private修飾的屬性和方法則不可以被子類繼承。
3、類的重載
一個子類中的屬性或方法有時會與它所繼承的父類中的屬性或方法重名,這時就出現(xiàn)了類的重載。
類的重載實際上是類屬性以及類的方法的重載。
當然,在子類中也可以訪問父類中的方法,不過要使用self和parent這兩個特殊的關(guān)鍵字,它們是用于在類的內(nèi)部對成員或方法進行訪問的。
$this是指向?qū)ο髮嵗囊粋€指針,在實例化的時候來確定指向;
self是指對類本身的一個引用,一般self指向類中的靜態(tài)變量。形式:self::靜態(tài)變量名
parent是對父類的引用,一般使用parent來調(diào)用父類的構(gòu)造函數(shù)。
4、PHP中與類、對象相關(guān)的函數(shù)
class_exists()函數(shù) 返回類型:布爾值
功能:該函數(shù)檢查類是否已經(jīng)定義
get_class_methods()函數(shù) 返回類型:數(shù)組(全部方法名)
功能:該函數(shù)返回由類的方法名組成的數(shù)組
get_class_vars()函數(shù) 返回類型:數(shù)組(類的所有公共屬性)
功能:該函數(shù)將返回由類的默認公有屬性組成的關(guān)聯(lián)數(shù)組,形式:varname=>value
get_class()函數(shù) 返回類型:字符串
功能:該函數(shù)將會返回對象實例所屬類的名字
get_declared_classes()函數(shù) 返回類型:數(shù)組
功能:該函數(shù)將會返回由當前腳本中已定義類的名字組成的數(shù)組。
get_object_vars()函數(shù) 返回類型:數(shù)組
功能:該函數(shù)返回由對象屬性組成的關(guān)聯(lián)數(shù)組。
get_parent_class()函數(shù) 返回類型:字符串
功能:該函數(shù)返回對象或類的父類名。
is_subclass_of()函數(shù) 返回類型:布爾值
功能:判斷對象與類的關(guān)系
method_exists()函數(shù) ? ?返回類型:布爾值
功能:該函數(shù)檢查類的方法是否存在。
?
轉(zhuǎn)載于:https://www.cnblogs.com/mnhome/p/9846451.html
總結(jié)
以上是生活随笔為你收集整理的面向对象编程基础 (一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在AWS上搭建NEO私有链(1)
- 下一篇: 10.24T3 解方程 取模意义下运算+