private 私有的 私有的屬性不能直接在外面訪問(wèn)
protected 受保護(hù)的 受保護(hù)的屬性 不能直接在外面訪問(wèn)
__set($key,$value) $key--->沒(méi)有權(quán)限賦值的屬性名 $value 沒(méi)有權(quán)限賦值的屬性值
給一個(gè)沒(méi)有權(quán)限訪問(wèn)的屬性賦值的時(shí)候自動(dòng)調(diào)用
__get($key) $key----->沒(méi)有權(quán)限訪問(wèn)的屬性名
訪問(wèn)一個(gè)沒(méi)有權(quán)限的屬性的時(shí)候自動(dòng)調(diào)用
public | protected | private | |
自己 | Y | Y | Y |
家族 | Y | Y | N |
外部 | Y | N | N |
面向?qū)ο蟮姆庋b
//public 自己 家族 外部 都可以訪問(wèn)
//protected 自己 家族 可以訪問(wèn)
//private 只有自己可以訪問(wèn)
三、魔術(shù)方法(自動(dòng)調(diào)用)
__construct() 在使用new關(guān)鍵字得到對(duì)象的是自動(dòng)調(diào)用
__destruct() 在對(duì)象銷(xiāo)毀的時(shí)候 自動(dòng)調(diào)用
__get() 在訪問(wèn)一個(gè)沒(méi)有權(quán)限的屬性的時(shí)候自動(dòng)調(diào)用
__set()在沒(méi)有權(quán)限賦值的時(shí)候自動(dòng)調(diào)用
__isset() 在沒(méi)有權(quán)限使用isset函數(shù)判斷屬性的時(shí)候自動(dòng)調(diào)用
__unset() 在沒(méi)有權(quán)限使用unset函數(shù)銷(xiāo)毀屬性的時(shí)候自動(dòng)調(diào)用
面向?qū)ο蟮睦^承
一、目標(biāo):
清除重復(fù)代碼
二、實(shí)現(xiàn):
1. 將重復(fù)代碼提取出來(lái)
2. 建立聯(lián)系 extends關(guān)鍵字 詞義是擴(kuò)展 用于繼承
三、什么是父類(lèi) 和子類(lèi)
被繼承的類(lèi) 成為父類(lèi)(基類(lèi))
繼承其他類(lèi)的類(lèi) 成為 子類(lèi) (派生類(lèi))
四、繼承的特性(重點(diǎn)重點(diǎn))
a) php只支持單繼承 只能有一個(gè)爹
b) php可以被多個(gè)繼承 一個(gè)爹可以有多個(gè)兒子
c) php支持多層繼承 可以有祖孫關(guān)系
B繼承A,C繼承B,那么C里面就有ABC三個(gè)類(lèi)里面的所有內(nèi)容
d) 子類(lèi)會(huì)擁有父類(lèi)中的所有內(nèi)容但是有部分內(nèi)容無(wú)法訪問(wèn)(封裝)
五、屬性繼承(重寫(xiě) 重構(gòu))
1. 子類(lèi)里面的屬性會(huì)覆蓋父類(lèi)中的同名屬性
2. 訪問(wèn)屬性的時(shí)候一定是最終結(jié)果(被子類(lèi)覆蓋的結(jié)果,除了私有的)
3. 權(quán)限只能擴(kuò)大 不能縮小
父類(lèi) | 子類(lèi) |
public | public |
protected | public protected |
private | public protected private |
六、方法繼承(重寫(xiě) 重構(gòu))
1. 子類(lèi)里面的方法會(huì)覆蓋父類(lèi)中的同名方法
2. 訪問(wèn)方法的時(shí)候一定是最終的結(jié)果(被子類(lèi)覆蓋之后的結(jié)果 除了私有的)
3. 重寫(xiě)的時(shí)候 參數(shù)結(jié)構(gòu)(參數(shù)個(gè)數(shù) 和參數(shù)是否有默認(rèn)值)建議保持一致
4. 權(quán)限只能擴(kuò)大 不能縮小
父類(lèi) | 子類(lèi) |
public | public |
protected | public protected |
private | public protected private |
5. 可以調(diào)用父類(lèi)中的方法 需要使用范圍操作符
:: A::say() parent::say()
parent 代表的是父類(lèi)
要求: 重寫(xiě)構(gòu)造方法的時(shí)候 務(wù)必在第一行調(diào)用父類(lèi)中的構(gòu)造方法
七、關(guān)鍵字
1. final (最終的)(掌握)
final 可以修飾類(lèi)和方法
被修飾的類(lèi)不能被繼承
被修飾的方法不能重寫(xiě)
2. static
a) 可以修飾屬性和方法 不能修飾類(lèi)
b) 靜態(tài)成員需要使用范圍操作符來(lái)訪問(wèn) A::$name 如果你訪問(wèn)的是靜態(tài)屬性一定要加上$A::say()
c) 靜態(tài)的成員方法里面不能出現(xiàn)非靜態(tài)內(nèi)容 $this 和非靜態(tài)成員
d) 靜態(tài)方法里面只能使用靜態(tài)屬性
3. const
可以在類(lèi)里面定義常量
值保留類(lèi)里面的屬性默認(rèn)值特性
類(lèi)里面定義的常量 需要使用范圍操作符類(lèi)訪問(wèn)
A::DB B::DB
4. define
不能在類(lèi)里面定義常量
5. 運(yùn)算符 instanceof
判斷前面的這個(gè)對(duì)象是否是后面這個(gè)類(lèi)的實(shí)例
祖輩關(guān)系都行
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。