php面向?qū)ο缶幊痰娜筇卣鳍佟⒎庋b、繼承、多態(tài)抽象
2021-08-13
php面向?qū)ο缶幊痰娜齻€(gè)特點(diǎn)
①、包裝
②、繼承
③、多態(tài)性
摘要:我們?cè)谘芯款?lèi)的時(shí)候,其實(shí)是提取了一類(lèi)事物的共同屬性和行為,形成了一個(gè)物理模型。這種研究問(wèn)題的方法稱(chēng)為抽象。
包裝:
封裝,即把客觀事物封裝成抽象類(lèi),類(lèi)只能通過(guò)可信的類(lèi)或?qū)ο蟛僮髯约旱臄?shù)據(jù)和方法,隱藏不可信的信息。
以上操作是通過(guò)下面的訪(fǎng)問(wèn)控制符號(hào)來(lái)實(shí)現(xiàn)的,它們規(guī)定了自己的權(quán)限,讓有些人可以訪(fǎng)問(wèn),有些人不能。
示例:
name=$name;
$this->age=$age;
$this->salary=$salary;
}
}
$a1=new Person("小明",32,5000);
//正確顯示,全局屬性訪(fǎng)問(wèn)沒(méi)有限制
echo "
".$a1->name."
";
//報(bào)錯(cuò),私有屬性不能在類(lèi)外訪(fǎng)問(wèn)
//echo "
".$a1->age."
";
//報(bào)錯(cuò),私有屬性不能在類(lèi)外訪(fǎng)問(wèn)
//echo "
".$a1->salary."
";
?>
php 提供了三個(gè)訪(fǎng)問(wèn)控制符號(hào)來(lái)控制方法和屬性(變量)的訪(fǎng)問(wèn)權(quán)限。
1.表示全局,可以在本類(lèi)、類(lèi)外、子類(lèi)中使用
2.表示受保護(hù),可以在本類(lèi)或子類(lèi)中使用,不能在n類(lèi)外使用
3.表示,只能在本類(lèi)中使用,不能在類(lèi)外使用,即如果類(lèi)在其他地方是新的php面向?qū)ο缶幊填},則無(wú)法調(diào)用該方法。
這三個(gè)控件修飾符可以修改屬性和方法。
1. 如果一個(gè)方法沒(méi)有訪(fǎng)問(wèn)修飾符php面向?qū)ο缶幊填},默認(rèn)是
2. 屬性必須指定訪(fǎng)問(wèn)修飾符。如果沒(méi)有訪(fǎng)問(wèn)修飾符,則會(huì)報(bào)錯(cuò)。
3.私有方法前最好加下劃線(xiàn),如:(){}
//方法之間可以互相調(diào)用。但是你需要使用 $this 引用
()
{
$this->();
}
()
{
回聲“”;
}
插圖:
如果要訪(fǎng)問(wèn)變量或類(lèi)外的變量,通常的方法是在類(lèi)中創(chuàng)建方法來(lái)訪(fǎng)問(wèn)這些變量。形式是
($val){
}
(){
}
(){
}
插圖:
name=$name;
$this->age=$age;
$this->salary=$salary;
}
//成員方法
public function showInfo(){
//這里說(shuō)明在本類(lèi)中可以使用 public protected 和private 修飾的變量.
echo "
".$this->name."||".$this->age."||".$this->salary;
}
}
//創(chuàng)建一個(gè)人
$p1=new Person2("豬八戒",20,5000);
//訪(fǎng)問(wèn)其詳細(xì)信息,由于屬性age和salary分別為保護(hù)和私有變量,若在類(lèi)外直接訪(fǎng)問(wèn)
//其屬性會(huì)報(bào)錯(cuò),但在類(lèi)中創(chuàng)建一個(gè)公共屬性的函數(shù),通過(guò)函數(shù)即可訪(fǎng)問(wèn)這些變量。
$p1->showInfo();
?>