国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【PHP】面向?qū)ο缶幊?

KaltZK / 1484人閱讀

摘要:封裝是面向?qū)ο蟮奶卣髦唬菍?duì)象和類概念的主要特性。通過這種方式,對(duì)象對(duì)內(nèi)部數(shù)據(jù)提供了不同級(jí)別的保護(hù),以防止程序中無關(guān)的部分意外的改變或錯(cuò)誤的使用了對(duì)象的私有部分。構(gòu)造函數(shù)通常被用來自動(dòng)執(zhí)行很多初始化操作。

之前的相關(guān)問題

面向?qū)ο蠛兔嫦蜻^程的差別,各自的優(yōu)缺點(diǎn)

面向?qū)ο笥心男┗咎匦裕扛髯蕴匦詭砟男┖锰?/p>

面向?qū)ο蟮幕菊Z法?

面向?qū)ο蟮幕咎匦缘幕緦?shí)現(xiàn)

面向?qū)ο蠼Y(jié)合各種設(shè)計(jì)模式的使用

面向?qū)ο蟮膬?yōu)勢

易維護(hù)、易復(fù)用、易擴(kuò)展,由于面向?qū)ο笥蟹庋b、繼承、多態(tài)性的特性,可以設(shè)計(jì)出低耦合的系統(tǒng),使系統(tǒng)更加靈活、更加易于維護(hù)

面向?qū)ο蟮娜筇匦?/b>

封裝:也就是把客觀事物封裝成抽象的類,并且類可以把自己的數(shù)據(jù)和方法只讓可信的類或者對(duì)象操作,對(duì)不可信的進(jìn)行信息隱藏。封裝是面向?qū)ο蟮奶卣髦唬菍?duì)象和類概念的主要特性。 簡單的說,一個(gè)類就是一個(gè)封裝了數(shù)據(jù)以及操作這些數(shù)據(jù)的代碼的邏輯實(shí)體。在一個(gè)對(duì)象內(nèi)部,某些代碼或某些數(shù)據(jù)可以是私有的,不能被外界訪問。通過這種方式,對(duì)象對(duì)內(nèi)部數(shù)據(jù)提供了不同級(jí)別的保護(hù),以防止程序中無關(guān)的部分意外的改變或錯(cuò)誤的使用了對(duì)象的私有部分。

繼承:是可以讓某個(gè)類型的對(duì)象獲得另一個(gè)類型的對(duì)象的屬性的方法。它支持按級(jí)分類的概念。在 OOP中,繼承的概念很好的支持了代碼的重用性(reusability),也就是說,我們可以向一個(gè)已經(jīng)存在的類中添加新的特性,而不必改變這個(gè)類。這可以通過從這個(gè)已存在的類派生一個(gè)新類來實(shí)現(xiàn)。這個(gè)新的類將具有原來那個(gè)類的特性,以及新的特性。而繼承機(jī)制的魅力和強(qiáng)大就在于它允許程序員利用已經(jīng)存在的類(接近需要,而不是完全符合需要的類),并且可以以某種方式修改這個(gè)類,而不會(huì)影響其它的東西

多態(tài):多態(tài)就是指一個(gè)類實(shí)例的相同方法在不同情形有不同表現(xiàn)形式。多態(tài)機(jī)制使具有不同內(nèi)部結(jié)構(gòu)的對(duì)象可以共享相同的外部接口。這意味著,雖然針對(duì)不同對(duì)象的具體操作不同,但通過一個(gè)公共的類,它們(那些操作)可以通過相同的方式予以調(diào)用

PHP面向?qū)ο蟮幕菊Z法

聲明一個(gè)類:
使用一個(gè)class關(guān)鍵字,提供一個(gè)類的名字,然后列出這個(gè)累的實(shí)例應(yīng)該具備的方法和屬性

class MyClass{
    ...    //屬性列表
    
    ...    //方法列表
}

new關(guān)鍵字和構(gòu)造函數(shù)
類的實(shí)例使用new關(guān)鍵字創(chuàng)建。

$zhangsan = new Person();

上面的代碼創(chuàng)建了Person類的實(shí)例,當(dāng)調(diào)用new的時(shí)候PHP會(huì)分配一個(gè)新的對(duì)象,并且從你定義的類中拷貝屬性和方法,然后如果你定義了對(duì)象的構(gòu)造函數(shù)的話,它會(huì)被自動(dòng)調(diào)用,它在new關(guān)鍵字創(chuàng)建一個(gè)對(duì)象后自動(dòng)裕興。構(gòu)造函數(shù)通常被用來自動(dòng)執(zhí)行很多初始化操作。構(gòu)造函數(shù)也接收參數(shù)


使用$this變量訪問方法和屬性
在對(duì)象的方法執(zhí)行時(shí),PHP會(huì)自動(dòng)定義一個(gè)叫$this的特殊變量,他表示一個(gè)對(duì)對(duì)象本身的引用

$this->name;     //訪問$name非靜態(tài)屬性(注意別在屬性的名字前面加$符號(hào))
$this->getName();    //調(diào)用類的非靜態(tài)方法

public,protected和private屬性和方法


靜態(tài)屬性
靜態(tài)屬性和常規(guī)屬性不一樣,靜態(tài)屬性屬于類本身而不屬于類的任何勢力。靜態(tài)屬性使用static關(guān)鍵字定義。
訪問一個(gè)靜態(tài)屬性:使用類名或者使用特殊的類名self來訪問它,self是一個(gè)方法所屬的類的縮寫。

print MyClass::$staticName;
print self::$staticName;    //在類的方法中調(diào)用

靜態(tài)方法
靜態(tài)方法是類的一部分,不屬于類的任何實(shí)例。靜態(tài)方法中不能使用任何$this,因?yàn)殪o態(tài)方法跟實(shí)例無關(guān)。

class_name::method();
self::method();

類的常量
與靜態(tài)成員相似,它們屬于類本身而不屬于類的實(shí)例。類的常量對(duì)大小寫敏感。

class MyClass{
    const RED = "red";
    
    function color(){
        return self::RED;
    }
}
print MyClass::RED;
$obj = new MyClass();
$obj->color();

多態(tài)

    class Cat{
        public function miau(){
            print "miau";
        }
    }

    class Dog{
        public function waff(){
            print "waau";
        }
    }

    function makeSound($obj){
        if($obj instanceof Cat){
            $obj->miau();
        }else if($obj instanceof Dog){
            $obj->waff();
        }else{
            print "Error:Pass wrong kind of object!";
        }
        print "
";
    }

    makeSound(new Cat());
    makeSound(new Dog());

上面的例子是不可以擴(kuò)展的,想增加第三個(gè)動(dòng)物聲音時(shí),不得不在makeSound()函數(shù)中增加esleif語句。可以使用多態(tài)解決這個(gè)問題

    class Animal{
        public function makeSound(){
            print "Error:should implemented class";
        }
    }

    class Cat extends Animal{
        public function makeSound(){
            print "miau";
        }
    }

    class Dog extends Animal{
        public function makeSound(){
            print "waau";
        }
    }

    function makeSound($obj){
        if($obj instanceof Animal){
            $obj->makeSound();
        }else{
            print "Error:Pass wrong kind of object!";
        }
        print "
";
    }

    makeSound(new Cat());
    makeSound(new Dog());

抽象類 abstract
如果類中定義了抽象方法,那么這個(gè)類必須定義為抽象類,抽象類中的抽象函數(shù)沒有被實(shí)現(xiàn),所以不是一個(gè)完整的類,所以不能實(shí)例化抽象類的。
如果一個(gè)類繼承了抽象類,那么這個(gè)類必須實(shí)現(xiàn)抽象類的抽象方法


接口 interface

interface Loggable{
    function logString();
    
    function logErr();
}

接口中的方法都是abstract的,就是說其中的方法都沒有實(shí)現(xiàn)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/30608.html

相關(guān)文章

  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對(duì)象”還好嗎?

    摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來。注意中,對(duì)象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    李昌杰 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對(duì)象”還好嗎?

    摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來。注意中,對(duì)象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    Lyux 評(píng)論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對(duì)象”還好嗎?

    摘要:很多情況下,通常一個(gè)人類,即創(chuàng)建了一個(gè)具體的對(duì)象。對(duì)象就是數(shù)據(jù),對(duì)象本身不包含方法。類是相似對(duì)象的描述,稱為類的定義,是該類對(duì)象的藍(lán)圖或原型。在中,對(duì)象通過對(duì)類的實(shí)體化形成的對(duì)象。一類的對(duì)象抽取出來。注意中,對(duì)象一定是通過類的實(shí)例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    AaronYuan 評(píng)論0 收藏0
  • 淺談PHP面向對(duì)象編程

    摘要:一面向?qū)ο缶幊袒A(chǔ)實(shí)踐通過對(duì)象的編程方式,可將實(shí)現(xiàn)生活中的一切事物以對(duì)象的形式表現(xiàn)出來。此時(shí)程序也將會(huì)報(bào)致命錯(cuò)誤。屬性不可訪問或未定義,值判斷對(duì)象中的屬性不存在時(shí),自動(dòng)執(zhí)行該函數(shù)。屬性值未定義釋放對(duì)象中的不存在的屬性值時(shí),自動(dòng)執(zhí)行該函數(shù)。 一、PHP面向?qū)ο缶幊袒A(chǔ)實(shí)踐 二、PHP面向?qū)ο蟾呒?jí)編程實(shí)踐 知識(shí)點(diǎn):類的繼承、方法重寫、訪問控制、static關(guān)鍵字、final關(guān)鍵字、數(shù)據(jù)訪...

    DrizzleX 評(píng)論0 收藏0
  • PHP面向對(duì)象編程面向對(duì)象概念、基本實(shí)踐、高級(jí)實(shí)戰(zhàn)、PHP面向對(duì)象特殊實(shí)踐

    摘要:一面向?qū)ο蟮母拍钍裁词敲嫦驅(qū)ο笫篱g萬物皆對(duì)象,抽象的也是對(duì)象,一切可見或不可見都是對(duì)象對(duì)象的基本組成對(duì)象包含兩個(gè)部分對(duì)象的組成元素是對(duì)象的數(shù)據(jù)模型,用于描述對(duì)象的數(shù)據(jù)又稱為對(duì)象的屬性,或者對(duì)象的成員變量對(duì)象的行為是對(duì)象的行為模型,用于描述對(duì) 一、面向?qū)ο蟮母拍?1.1 什么是面向?qū)ο?object oriented) ?????世間萬物皆對(duì)象,抽象的也是對(duì)象,一切可見或不可見都是對(duì)象 ...

    worldligang 評(píng)論0 收藏0
  • php學(xué)習(xí)筆記(二)面向對(duì)象編程

    摘要:具有構(gòu)造函數(shù)的類會(huì)在每次創(chuàng)建新對(duì)象時(shí)先調(diào)用此方法,所以非常適合在使用對(duì)象之前做一些初始化工作。類的定義以關(guān)鍵字開始,類的命名通常以每個(gè)單詞第一個(gè)字母大寫定義屬性構(gòu)造函數(shù),在對(duì)象被實(shí)例化的時(shí)候自動(dòng)調(diào)用是里面的偽變量,表示對(duì)象自身。 public 公有的:本類,子類,外部對(duì)象都可以調(diào)用 protected 受保護(hù)的:本類 子類,可以執(zhí)行,外部對(duì)象不可以調(diào)用 private 私有的:只能...

    alanoddsoff 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<