php學(xué)習(xí) 面向?qū)ο?課件
更新時(shí)間:2008年06月15日 12:58:59 作者:
面向?qū)ο?
對(duì)象概念是面向?qū)ο蠹夹g(shù)的核心。在顯示世界里我們所面對(duì)的事情都是對(duì)象,如計(jì)算機(jī)、電視機(jī)、自行車(chē)等。在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,對(duì)象是一個(gè)由信息及對(duì)信息進(jìn)行處理的描述所組成的整體,是對(duì)現(xiàn)實(shí)世界的抽象
靜態(tài)屬性和方法
static關(guān)鍵字 來(lái)聲明靜態(tài)方法
static靜態(tài)變量 在類(lèi)的內(nèi)部生成一個(gè)靜態(tài)變量 就是能夠被所有類(lèi)的實(shí)力化共想 也就是說(shuō)靜態(tài)成員則放到了“初始化靜態(tài)段”,在類(lèi)第一次被加載的時(shí)候放入的,可以讓堆內(nèi)存里面的每個(gè)對(duì)象所共享
使用方法:self::$靜態(tài)屬性、self::靜態(tài)方法
static function p(){
echo self::$country;
echo self::PI;//訪(fǎng)問(wèn)常量
//echo $this->name;在靜態(tài)方法中只能操作靜態(tài)屬性
//self::p();
}
外部調(diào)用:類(lèi)::$靜態(tài)屬性、類(lèi)::靜態(tài)方法
const關(guān)鍵字:用來(lái)生成常量 常量是唯一的不能改變的 慣例常量為大寫(xiě)
const CONSTANT = 'constant value'; 生成一個(gè)常量
echo self::CONSTANT;//類(lèi)內(nèi)部訪(fǎng)問(wèn)
echo ClassName::CONSTANT;//類(lèi)外部訪(fǎng)問(wèn)
繼承性
B類(lèi)的對(duì)象擁有A類(lèi)的全部屬性與行為,稱(chēng)作B對(duì)A類(lèi)的繼承。
假如一個(gè)類(lèi)從多個(gè)類(lèi)中繼承了屬性與服務(wù),這稱(chēng)為多繼承,通常我們成為繼承類(lèi)為子類(lèi)被繼承類(lèi)為父類(lèi),在PHP中只有單繼承,但一個(gè)父類(lèi)可以被多個(gè)類(lèi)繼承,但是一個(gè)子類(lèi)只能有一個(gè)父類(lèi),但是允許關(guān)聯(lián)繼承,通過(guò)繼承可以減化類(lèi)的定義。
extende聲明繼承關(guān)系
語(yǔ)法格式:class B extends A 此范例指明 B繼承了A
類(lèi)的外部訪(fǎng)問(wèn)對(duì)子類(lèi)是有效的
子類(lèi)與父類(lèi)的屬性與方法
子類(lèi)繼承父類(lèi)的所有內(nèi)容,但父類(lèi)中的private部分不能直接訪(fǎng)問(wèn)
子類(lèi)中新增加的屬性和方法是對(duì)父類(lèi)的擴(kuò)展
子類(lèi)中定義的與父類(lèi)同名的屬性是對(duì)父類(lèi)屬性的覆蓋,同名的方法也是對(duì)父類(lèi)方法的覆蓋
重寫(xiě)的方法
在子類(lèi)中,使用parent訪(fǎng)問(wèn)父類(lèi)中的被覆蓋的屬性和方法
parent::__construce();
parent::$name;
parent::fun();
覆蓋父類(lèi)原有屬性
clone克窿對(duì)象 語(yǔ)法格式$c=clone $p; $c克窿的對(duì)象$p 輸出echo $c->name;
對(duì)象比較
===兩個(gè)比較運(yùn)算符。
==是比較兩個(gè)對(duì)象的內(nèi)容。
===是比較對(duì)象的句柄,即引用地址。
instanceof操作符用于檢測(cè)對(duì)象實(shí)力是否屬于某一個(gè)類(lèi)的類(lèi)型 屬于返回true 不屬于返回false
__clone()如果想在克隆后改變?cè)瓕?duì)象的內(nèi)容,需要在__clone()中重寫(xiě)原本的屬性和方法
function __clone(){
$this->name="我是一個(gè)克隆人";
}
final表示一個(gè)類(lèi)是最終版本 也就是說(shuō)它不能在被子類(lèi)調(diào)用
多態(tài)性
多態(tài)性是指在父類(lèi)中定義的屬性或行為被子類(lèi)繼承之后,可以具有不同的數(shù)據(jù)類(lèi)型或表現(xiàn)出不同的行為。這使得同一個(gè)屬性或行為在父類(lèi)及其各個(gè)子類(lèi)中具有不同的語(yǔ)義。
就是說(shuō)同一種方法在子類(lèi)與父類(lèi)中執(zhí)行的結(jié)果不同。
class A {
function info(){
echo “A INFO”;
}
}
class B extends A {
function info(){
echo “B INFO”;
}
}
class C extends A {
function info(){
echo “C INFO”;
}
}
function printinfo($obj){
function printinfo(A $obj){
if($obj instanceof A)
$obj->info();
$obj->info();
}
}
$a=new A(); $b=new B(); $c=new C();
printinfo($a); //輸出A INFO
printinfo($b); //輸出B INFO
printinfo($c); //輸出C INFO
抽象方法和抽象類(lèi)
抽象方法是作為子類(lèi)摸版使用的。
abstract class Person{
public $name;
abstract function getInfo();
}
抽象類(lèi)不能被實(shí)力話(huà),一個(gè)抽象類(lèi)中,必須有一個(gè)抽象方法。但是抽象類(lèi)中可以定義動(dòng)態(tài)函數(shù)。
接口
當(dāng)一個(gè)類(lèi)繼承了一個(gè)接口之后,它要覆蓋接口的所有方法,接口只能聲明常量,接口的方法必須定義為共有否則無(wú)法繼承,接口可以與多個(gè)接口間繼承
語(yǔ)法:
interface PCI{
const TYPE="PCI";
//public $name; error
function start();
function stop();
}
接口中的方法可以聲明為static
interface A{ function a();}
interface B{ function b();}
interface C extends A{ function c();}
class D implements B,C{
function a(){}
function b(){}
function c(){}
}
phpchina教學(xué)課件

相關(guān)文章
php入門(mén)學(xué)習(xí)知識(shí)點(diǎn)七 PHP函數(shù)的基本應(yīng)用
php入門(mén)學(xué)習(xí)知識(shí)點(diǎn)七 PHP函數(shù)的基本應(yīng)用,非常常用,大家可以看看。2011-07-07把從SQL中取出的數(shù)據(jù)轉(zhuǎn)化成XMl格式
把從SQL中取出的數(shù)據(jù)轉(zhuǎn)化成XMl格式...2006-10-10無(wú)數(shù)據(jù)庫(kù)的詳細(xì)域名查詢(xún)程序PHP版(5)
無(wú)數(shù)據(jù)庫(kù)的詳細(xì)域名查詢(xún)程序PHP版(5)...2006-10-10[PHP] 《PHP邊學(xué)邊教》(01.開(kāi)篇——準(zhǔn)備工作)
[PHP] 《PHP邊學(xué)邊教》(01.開(kāi)篇——準(zhǔn)備工作)...2006-12-12php+mysql 實(shí)現(xiàn)身份驗(yàn)證代碼
form php mysql實(shí)現(xiàn)身份驗(yàn)證2010-03-03基于數(shù)據(jù)庫(kù)的在線(xiàn)人數(shù),日訪(fǎng)問(wèn)量等統(tǒng)計(jì)
基于數(shù)據(jù)庫(kù)的在線(xiàn)人數(shù),日訪(fǎng)問(wèn)量等統(tǒng)計(jì)...2006-10-10