亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

PHP-面向對象

難度初級
時長 2小時30分
學習人數
綜合評分9.50
55人評價 查看評價
9.7 內容實用
9.7 簡潔易懂
9.1 邏輯清晰
  • 在實例化一個對象的時候,通常需要初始化。 對象被銷毀的時候,需要有回收。所以就用到了類里面的兩個內置的方法:構造方法和析構方法。

    構造方法:

    <?php
    class?Computer{
    ????public?function?__construct()???//內置的構造方法,不用調用直接就會執行
    ????{
    ????????echo?"cpu就緒。。";
    ????????echo?"主板就緒。。";
    ????????echo?"內存就緒。。";
    ?????}
    ?????public?function?game()
    ?????{
    ?????????echo?"---玩游戲---";
    ??????}
    }
    $computer?=?new?Computer();
    $computer->game();??//結果為:cpu就緒。。主板就緒。。內存就緒。。---玩游戲---
    <?php
    class?Computer{
    ????public?function?__construct($high?=?0)???
    ????{
    ????????if($high){
    ????????????echo?"高配的cpu就緒。。";
    ????????????echo?"高配的主板就緒。。";
    ????????????echo?"高配的內存就緒。。";
    ?????????}else{
    ????????????echo?"cpu就緒。。";
    ????????????echo?"主板就緒。。";
    ????????????echo?"內存就緒。。";
    ?????????}
    ?????}
    ?????public?function?game()
    ?????{
    ?????????echo?"---玩游戲---";
    ??????}
    }
    $computer?=?new?Computer(1);???//?1這個參數就是構造方法的參數
    $computer->game();??//結果為:高配的cpu就緒。。高配的主板就緒。。高配的內存就緒。。---玩游戲---

    析構方法:

    <?php
    class?Computer{
    ????public?function?game()
    ????{
    ????????echo?"---玩游戲---";
    ?????}
    ?????public?function?__destruct()????//是析構方法,直接可執行
    ?????{??
    ??????????echo?"關閉電源。。。";
    ??????}
    }
    $computer?=?new?Computer();
    $computer->game();???//結果為:---玩游戲---關閉電源。。。
    //還可以這樣?手動釋放對象變量
    unset($computer);
    echo?"good?job";????//結果為:---玩游戲---關閉電源。。。good?job


    類常量:

    <?php
    class?Computer
    {
    ????const?YES?=?ture;?????//const關鍵字定義類常量,類常量一般是大寫字母和下劃線組成
    ????const?NO?=?false;
    ????const?ONE?=?1;
    ????
    ????const?TWO?=?self::ONE?+?1;????//在類里用self調用類里的常量
    ????const?THREE?=?self::TWO?+?1;
    }
    var_dump(Computer::THREE);??//在類外面可直接調用類里的常量,結果為:int(3)


    查看全部
  • 調用靜態方法self:: 與static::的區別

    selft代表自身;static可以實現后期綁定

    查看全部
    0 采集 收起 來源:后期靜態綁定

    2020-06-07

  • 命名空間

    例如:namespace venter;

    ???????? namespace venter\session

    調用:命名空間(venter)\ 成員(Imooc())

    將類,函數,常量導入命名空間

    例如:

    ????use venter\session\Imooc();

    ? ? use venter\Imooc as Imooc2;

    ????use function venter\iLIkeImooc;

    ????use const venter\Imooc;

    命名空間需要調用全局空間定義的類需要添加“\”;而方法或者常量不需要,因為方法或者常量發現在當前命名空間沒找到的話,會去全局命名空間找




    查看全部
    0 采集 收起 來源:命名空間

    2020-06-07

  • 子類繼承父類,如果子類沒有構造方法,實例化子類的時候會調用父類的構造方法。如果子類中有構造方法,會調用自身子類的構造方法。如果子類中也想調用父類的構造方法,可以用parent調用

    組合和繼承?

    查看全部
  • 類常量使用見截圖

    查看全部
  • 構造函數必須是public,否則不能創建對象。但是如果設置為private,就可以實現單例模式

    查看全部
  • 對象是類的實例,先有類,才有對象。就像配置單和電腦的關系。

    類是一個代碼模板? ? ? ? ?http://img1.sycdn.imooc.com//5ed4a6c1000152b807250273.jpg

    //定義一個類
    <?php???????????//類名以字母或下劃線開頭,后面可跟字母、數字、下劃線。
    class?Computer?{??????//類名一般開頭的字母大寫,為了清晰。當然也可以用小寫。
    }
    $computer?=?new?Computer();??//這個對象賦給了這個變量,這個對象叫做Computer類的一個實例。
    var_dump($computer);???//打印出:object(Computer)#1(0){}

    http://img1.sycdn.imooc.com//5ed4a7aa0001fa7e04200264.jpg? ? ? ? ? ? ? ? ??http://img1.sycdn.imooc.com//5ed4a81e0001e06004380283.jpg

    <?php
    class?Computer?{?????
    ????public?$cpu?=?'amd?5000';?????//屬性?????
    ????public?$mainboard?=?'華碩9000x';??//屬性?????
    ????private?$hd?=?1024;?????????//屬性??
    ????????????
    ????public?function?game($gameName='')????//方法?????
    ????{????????????????
    ???????echo?$this->hd;????//要在類里面調用屬性,就用this?可以理解為這個類的一個實例(對象)?????
    ?????}??????????????????//打印出:1024?????
    ?????public?function?job($work='寫代碼')???//方法?????
    ?????{???????????
    ???????????echo?($this->game());?????????
    ??????}
    ?}
    ?$computer?=?new?Computer();
    ?var_dump($computer);????//打印出所有的屬性:object(Computer)#1?(3)?{?["cpu"]=>?string(8)?"amd?5000"["mainboard"]=>?string(11)?"華碩9000x"?["hd":"Computer"?:private]=>int(1024)}
    ?var_dump($computer->cpu);???//調用屬性?打印出:string(8)"amd?5000"
    ?var_dump($computer->hd);??//是私有的,不能給外部對象調用??打印出錯??,只能在類的內部使用。
    ??>
    ?
    ?<?php
    ?class?Computer?{
    ????public?$cpu?=?'amd?5000';??????//屬性??
    ????public?$mainboard?=?'華碩9000x';??//屬性?????
    ????private?$hd?=?512;?????????//屬性??????????
    ????public?function?game($gameName='')????//方法?????
    ????{????????????????
    ????????if($this->getHdSize()?<?1024){??????
    ???????????echo?"硬盤太小玩不了游戲";??
    ???????????return?false;??????????
    ?????????}?????????????
    ?????????return?true;????????
    ??????}??????????????
    ??????public?function?job($work='寫代碼')???//方法?????
    ??????{??????
    ??????????echo?($this->game());??//整個的結果就是打印出:硬盤太小玩不了游戲?????
    ???????}?????
    ???????public?function?getHdSize()???????//方法?????
    ???????{????????
    ????????????return?$this->hd;???//獲取硬盤大小?????
    ????????}
    }
    $computer?=?new?Computer();


    查看全部
  • http://img1.sycdn.imooc.com//5ecbc5760001433106450216.jpg

    面向對象編程 可使項目模塊化

    重用性:設計的每一個模塊都可在項目中重復使用

    靈活性:每一個模塊都可以很輕松地被替換

    擴展性:在現有的模塊上添加新功能

    ? ? 面向對象:項目由一個個對象組建而成,每個對象都是獨立的,他們各司其職,最后像搭積木一樣,將各種組合起來,就實現了一個項目。

    查看全部
    2 采集 收起 來源:面向對象介紹

    2020-05-25

  • 類 的復用可直接用:use 類名

    查看全部
    0 采集 收起 來源:Trait關鍵字

    2020-04-11

  • 對象復制是淺拷貝,會改變對象值,前面加clone,這不會改變原來值。

    查看全部
  • class A {
    ? ? public static function who()
    ? ? {
    ? ? ? ? echo "A類的who方法";
    ? ? }
    ? ? public static function test()
    ? ? {
    ? ? ? ? ?self::who();//輸出A類的who方法
    ? ? ? ? ?static::who();//后期綁定輸出B類的who方法? ? }? ??
    }
    class B extends A {
    ? ? public static function who()
    ? ? {
    ? ? ? ? echo "B類的who方法";
    ? ? }
    }

    查看全部
    0 采集 收起 來源:后期靜態綁定

    2020-04-11

  • $this在當前方法使用

    self指向當前類

    parent指向父類

    查看全部
    0 采集 收起 來源:類的自動加載

    2020-04-10

  • <?php

    class Person
    {
    ? ? public ststic $hand = "手";
    ? ? public ststic function work()
    ? ? {
    ? ? ? ? return "工作";
    ? ? ?}
    }

    echo (Person::$hand);
    echo (Person::$work());

    //當屬性或方法定義為static后,輸出時就不需要實例化類了,直接調用


    查看全部
    0 采集 收起 來源:類的自動加載

    2020-04-10

  • 1.

    spl_autoload_register( function( $className ){

    ????require $className . '.php';

    } )

    2.

    function autoload( $className ){

    ????require $className . '.php';

    }

    spl_autoload_register( 'autoload' )

    3.方法是在類里面

    class Momo{

    ????function autoload( $className ){

    ???????? require $className . '.php';

    ????}

    }

    spl_autoload_register( [new Momo, 'autoload' ] )// 第一個參數實例,第二個參數是類的方法

    $imooc = new Imooc();
    var_dump(#imooc);

    查看全部
    0 采集 收起 來源:類的自動加載

    2020-04-10

  • 命名空間一般對類起作用,方法會自動尋找類名。

    查看全部
    0 采集 收起 來源:命名空間

    2020-04-10

舉報

0/150
提交
取消
課程須知
學習該課程需要熟悉PHP語法基礎,了解PHP的基本使用
老師告訴你能學到什么?
1 對象的基本概念 2 什么是面向對象思想 3 面向對象的特性和規則 4 如何使用面向對象

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!