6.php面向?qū)ο?/h1>

面向?qū)ο蟮幕靖拍?/h1>

什么是類

類是由相同特征(屬性、靜態(tài)的)和行為(方法剪验、動作)的一組對象構(gòu)成
分類肴焊、類型、自定義類型
比如:人類...

什么是對象

對象就是一個一個的實(shí)體功戚,看得見娶眷、摸得著
比如:任何一個人的個體都是一個對象

類和對象的關(guān)系

類的實(shí)例就是對象,對象的抽象就是類
比如:將人類實(shí)例化才有人的個體啸臀,
所有的人都可以抽象的說他屬于人類

類的定義和類的實(shí)例

類的定義:

 class 類名{  
        類中成員;  
 }  

舉個栗子:

<?php
    class Person {
        //成員屬性: 姓名茂浮、性別、年齡、身高席揽、體重顽馋、電話等   -- 靜態(tài)描述
        var $name; 
        //成員方法:說話、學(xué)習(xí)幌羞、走路寸谜、吃飯、開車属桦、敲代碼等   -- 動態(tài)描述
        function say() {   //聲明第一個成員方法熊痴,定義人說話的功能
             //方法體
        }
     }
?>

類的實(shí)例:

通過關(guān)鍵字new 來聲明一個對象,并使用 對象名->成員屬性/方法 操作對象屬性
舉個栗子:

<?php
    class Person {
            public $name;
public function say() {  
            echo '哇哦~哇哦~哇哦~哇哦!';    
}   
       }
    $person = new Person();
    $person->name = '小團(tuán)團(tuán)';
    echo "person的名字是:".$person->name."";
    $person ->say();
?>

類常量

常量是不會改變的值聂宾,是一個恒值
定義常量使用關(guān)鍵字const
常量輸出格式 類名::常量名
注意:在定義和使用常量的時候不需要使用 $ 符號
舉個栗子:

<?php
    class Person {
        const  PERSON_NAME = ''人類'';
    
       }
    echo Person::PERSON_NAME;
?>

$this的使用

變量 this 代表自身的對象果善,使用this->可以調(diào)用類中方法,$this只能用在成員方法中系谐,其它任何地方都不能使用巾陕。
舉個栗子:

<?php
class People {
    public $name;
    function setName($par){
        $this->name= $par;
    }
    function getName(){
        echo $this->name;
    }
  }
$tuantuan= new People ;
$tuantuan->setTitle( "一條小團(tuán)團(tuán)" );
// 調(diào)用成員函數(shù),獲取名字
$tuantuan->getTitle();
?>

封裝/繼承/多態(tài)

定義成員變量時的關(guān)鍵字:public纪他、private鄙煤、protected
public -- 公開成員,可以在程序中的任何位置(類內(nèi)/外)被其他的類/子類和對象調(diào)用茶袒。
private -- 私有成員梯刚,只能在所屬類的內(nèi)部被調(diào)用和修改,不可以再類外/子類被訪問
protected -- 保護(hù)成員薪寓,在本類和子類中被調(diào)用亡资,其他地方則不可以被調(diào)用

封裝:

也可以稱為信息隱藏,封裝后對外只提供可操作的方法向叉,不會告訴你內(nèi)部結(jié)構(gòu)锥腻。封裝一個類需要兩步 第一步是私有化一個類 第二步是用set和get 做出讀取賦值的操作
預(yù)定義兩種函數(shù)來進(jìn)行獲取與敷值操作
  __get 獲取值
  __set 設(shè)置值

<?php 
class Person { 
private $name; 
    private function __get($property_name) { //__get()方法用來獲取私有屬性 
echo "在直接獲取私有屬性值的時候,自動調(diào)用了這個__get()方法<br>"; 
if(isset($this->$property_name)) { 
    return($this->$property_name); 
} else { return(NULL); } 
       } 
private function __set($property_name, $value) { //__set()方法用來設(shè)置私有屬性
echo "在直接設(shè)置私有屬性值的時候植康,自動調(diào)用了這個__set()方法為私有屬性賦值<br>"; 
$this->$property_name = $value; 
} 
        } 
$p1=newPerson(); 
$p1->name="張三"; //直接為私有屬性賦值的操作,會自動調(diào)用__set()方法進(jìn)行賦值 
echo "年齡:".$p1->name."<br>"; //直接獲取私有屬性值展懈,會自動調(diào)用__get()方法销睁,返回成員屬性值 
?>

繼承

繼承:子類可以繼承父類的屬性和方法,但是是有限繼承存崖,public冻记、protected、private三個修飾的屬性都可以繼承来惧,public冗栗、protected兩個修飾的方法可以繼承,父類的常量可以繼承。
extends聲明繼承關(guān)系
語法格式:class B extends A 此范例指明 B繼承了A
子類繼承父類的所有內(nèi)容隅居,但父類中的private部分不能直接訪問
子類中新增加的屬性和方法是對父類的擴(kuò)展
子類中定義的與父類同名的屬性是對父類屬性的覆蓋钠至,同名的方法也是對父類方法的覆蓋
重寫的方法
在子類中,使用parent訪問父類中的被覆蓋的屬性和方法

parent::__construct();
parent::$name;
parent::fun();

clone克窿對象 語法格式

$c=clone $p; 

c克窿的對象p 輸出

echo $c->name;

多態(tài)

多態(tài):同一個操作(函數(shù))作用于不同的類的實(shí)例胎源,將產(chǎn)生不同的執(zhí)行結(jié)果
舉個栗子:

<?php 
class Animal{ 
public $name; 
public $price; 
function talk(){ 
    echo 'wu wu wu'; 
} 
} 

class Dog extends Animal{ 
//覆蓋棉钧、重寫 
function talk(){ 
    echo 'Wang Wang!'; 
    Animal::talk();//這里不會報錯,能正確執(zhí)行父類的talk(); 
} 
} 

$dog1=new Dog(); 
$dog1->talk(); 
?>

構(gòu)造方法和析構(gòu)方法

構(gòu)造方法:生成對象時自動執(zhí)行的成員方法涕蚤,作用就是初始化對象宪卿。該方法可以沒有參數(shù),可以有多個參數(shù)万栅。定義構(gòu)造方法:void __construct (arg)
舉個栗子:

<?php
     class Person{
        public $name;
        public $age;
        function __construct($p1, $p2){//使用構(gòu)造方法給自己的成員屬性賦值
            $this->name = $p1;
            $this->age = $p2;
        }
        function say(){
            echo "我叫{$this->name}佑钾,我今年{$this->age}<br>";
        }
    }
    $person= new Person('小仙女', 18);
    $person->say();
?>

析構(gòu)方法:與構(gòu)造函數(shù)相反,當(dāng)對象結(jié)束其生命周期時(例如對象所在的函數(shù)已調(diào)用完畢)烦粒,系統(tǒng)自動執(zhí)行析構(gòu)函數(shù)休溶,作用時釋放內(nèi)存。定義析構(gòu)方法: void __destruct()
舉個栗子:

<?php
class Person{
        public $name;
        function __construct($p){
            $this->name = $p;
            echo "我的名字是{$this->name},很高興認(rèn)識你撒遣。<br>";
        }

        //聲明一個析構(gòu)方法邮偎,在對象銷毀前自動調(diào)用
        function __destruct(){
            echo "感謝相遇{$this->name}先生,珍重!<br>";
        }
    }
    $person= new Person('易烊千璽');
?>

靜態(tài)變量和靜態(tài)方法

static -- 靜態(tài)成員义黎,不需要實(shí)例化對象即可使用禾进,在對象被銷毀后仍可保存被修改的值
寫法:

static $屬性名/static fun()

使用:
類名::$屬性名/類名::方法名
舉個栗子:

<?php
class Math{
    static  $a = 0;
    static  function  b ($x,$y){
        $q =  $x  + $y;
        return $p;
    }
}
$matn_a = Math::$a;//調(diào)用類中的靜態(tài)屬性
var_dump($matn_a);
$math_b = Math::b(2,3);//調(diào)用類中的靜態(tài)方法
var_dump($math_b);
?>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者

  • 序言:七十年代末,一起剝皮案震驚了整個濱河市廉涕,隨后出現(xiàn)的幾起案子泻云,更是在濱河造成了極大的恐慌,老刑警劉巖狐蜕,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宠纯,死亡現(xiàn)場離奇詭異,居然都是意外死亡层释,警方通過查閱死者的電腦和手機(jī)婆瓜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贡羔,“玉大人廉白,你說我怎么就攤上這事」院” “怎么了猴蹂?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長楣嘁。 經(jīng)常有香客問我磅轻,道長珍逸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任聋溜,我火速辦了婚禮谆膳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘勤婚。我一直安慰自己摹量,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布馒胆。 她就那樣靜靜地躺著缨称,像睡著了一般。 火紅的嫁衣襯著肌膚如雪祝迂。 梳的紋絲不亂的頭發(fā)上睦尽,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機(jī)與錄音型雳,去河邊找鬼当凡。 笑死,一個胖子當(dāng)著我的面吹牛纠俭,可吹牛的內(nèi)容都是我干的沿量。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼冤荆,長吁一口氣:“原來是場噩夢啊……” “哼朴则!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起钓简,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤乌妒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后外邓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體撤蚊,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年损话,在試婚紗的時候發(fā)現(xiàn)自己被綠了侦啸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡丧枪,死狀恐怖光涂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情豪诲,我是刑警寧澤顶捷,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布挂绰,位于F島的核電站屎篱,受9級特大地震影響服赎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜交播,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一重虑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧秦士,春花似錦缺厉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至曹傀,卻和暖如春辐脖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背皆愉。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工嗜价, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人幕庐。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓久锥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親异剥。 傳聞我的和親對象是個殘疾皇子瑟由,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354