成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? php學習筆記之面向對象
全站頭部文字 我要出現在這里
php學習筆記之面向對象 756 2023-12-09   

public 公有的:本類,子類,外部對象都可以調用
protected 受保護的:本類 子類,可以執行,外部對象不可以調用
private 私有的:只能本類執行,子類與外部對象都不可調用
面向對象編程的三大特點

1)封閉性

封閉性,也可以稱為信息隱藏。就是將一個類的使用和實現分開,只保留有限的接口(方法)與外部聯系。對于用到該類的開發人員,只要知道這個類如何使用即可,而不用去關心這個類是如何實現的。這樣做可以讓開發人員更好地把精力集中起來專注別的事情,同時也避免了程序之間的相互依賴而帶來的不便。

2)繼承性

繼承性就是派生類(子類)自動繼承一個或多個基類(父類)中的屬性與方法,并可以重寫或添加新的屬性和方法。繼承這個特性簡化了對象和類的創建,增加了代碼的可重性。繼承分單繼承和多繼承,PHP所支持的是單繼承,也就是說,一個子類有且只有一個父類。

3)多態性

多態性是指同一個類的不同對象,使用同一個方法可以獲得不同的結果,這種技術稱為多態性。多態性增強了軟件的靈活性和重用性。

類的定義

一個類可以包含有屬于自己的常量,變量(稱為“屬性”)以及函數(稱為“方法”)。
和很多面向對象的語言一樣,PHP也是通過class關鍵字加類名來定義類的。類的格式如下:

<?php

  Class myobject{

    //……

}

?>

定義:物以類聚,把具有相似特性的對象歸到一個類中,類定義了這些相似對象擁有的相同屬性和方法。類是相似對象的描述,稱為類的定義,是該類對象的藍圖或原型。

類的對象稱為類的一個實例。要創建一個類的實例,必須使用 new 關鍵字。
001ZpQGYty6MeYnSNUh25&690

<?php

//類的定義以關鍵字class開始,類的命名通常以每個單詞第一個字母大寫

    class NbaPlayer{

        public $name = "Jordan"; //定義屬性

        public $height = "198cm";

        public $team = "Bull";

        public $playerNumber = "23";

//定義方法 public function run(){ echo "Runningn"; } public function dribblr(){ echo "Dribblingn"; } public function pass(){ echo "Passingn"; } } //類到對象的實例化 //類的實例化為對象時使用關鍵字new,new之后緊跟類的名稱和一對括號 $jordan = new NbaPlayer();

//對象中的屬性成員可以通過"->"符號來訪問 echo $jordan->name."n";

//對象中的成員方法可以通過"->"符號來訪問 $jordan->dribble(); $jordan->run(); ?>

成員方法

類中的函數被稱為成員方法。函數和成員方法唯一的區別就是,函數實現的是某個獨立的功能,而成員方法是實現類中的一個行為,是類的一部分。
下面就來擴充上面的myobject類,為它添加一個成員方法,代碼如下:

<?php

classmyobject{

   function getobjectname($name){

      echo "商品名稱為:".$name;

   }

}

?>

該方法的作用是輸出商品名稱,商品名稱是通過方法的參數傳進來的。
類是一個抽象的描述,是功能相似的一組對象的集合。如果想用到類中的方法和變量,首先就要把它具體落實到一個實體,也就是對象上。

類常量
既然有變量,當然也會有常量了。常量就是不會改變的量,是一個恒值。眾所周知的一個常量就是圓周率Pi。定義常量使用關鍵字const如:
ConstPI=3.14159;

構造函數

PHP 5 允行開發者在一個類中定義一個方法作為構造函數。具有構造函數的類會在每次創建新對象時先調用此方法,所以非常適合在使用對象之前做一些初始化工作。

<?php

//類的定義以關鍵字class開始,類的命名通常以每個單詞第一個字母大寫

    class NbaPlayer{

        public $name = "Jordan"; //定義屬性

        public $height = "198cm";

        public $team = "Bull";

        public $playerNumber = "23";

//構造函數,在對象被實例化的時候自動調用 function __construct($name,$height,$weight,$team){ echo "It is an NbaPlayer constructorn"; $this->name = $name; //$this是PHP里面的偽變量,表示對象自身。可以通過$this->的方式訪問對象的屬性和方法 $this->height = $height; $this->weight = $weight; $this->team = $team; }

//定義方法 public function run(){ echo "Runningn"; } public function dribblr(){ echo "Dribblingn"; } public function pass(){ echo "Passingn"; } } //類到對象的實例化 //類的實例化為對象時使用關鍵字new,new之后緊跟類的名稱和一對括號 $jordan = new NbaPlayer("Jordan","198cm","98kg","Bull");

//對象中的屬性成員可以通過"->"符號來訪問 echo $jordan->name."n";

//對象中的成員方法可以通過"->"符號來訪問 $jordan->dribble(); $jordan->run();

//每一次用new實例化對象的時候,都會用類名后面的參數列表調用構造函數 $james = new NbaPlayer("James","203cm","120kg","Heat") echo $james->name."n"; ?>

析構函數

<?php

//類的定義以關鍵字class開始,類的命名通常以每個單詞第一個字母大寫

    class NbaPlayer{

        public $name = "Jordan"; //定義屬性

        public $height = "198cm";

        public $team = "Bull";

        public $playerNumber = "23";

        

        //構造函數,在對象被實例化的時候自動調用

        function __construct($name,$height,$weight,$team){

            echo "It is an  NbaPlayer constructorn";

            $this->name = $name;

            //$this是PHP里面的偽變量,表示對象自身。可以通過$this->的方式訪問對象的屬性和方法

            $this->height = $height;

            $this->weight = $weight;

            $this->team = $team;

        }

        

        //析構函數,在程序執行結束的時候會自動調用

        //析構函數通常被用于清理程序使用的資源。比如程序使用了打印機,那么可以再析構函數里面釋放打印機資源

        function __destruct(){

            echo "Destroying".$this->name."n";

        }

        

        //定義方法

    public function run(){

        echo "Runningn";

    }

    public function dribblr(){

        echo "Dribblingn";

    }

    public function pass(){

        echo "Passingn";

    }

}

    //類到對象的實例化

    //類的實例化為對象時使用關鍵字new,new之后緊跟類的名稱和一對括號

    $jordan = new NbaPlayer("Jordan","198cm","98kg","Bull");    

    

    //對象中的屬性成員可以通過"->"符號來訪問

    echo $jordan->name."n";

    

    //對象中的成員方法可以通過"->"符號來訪問

    $jordan->dribble();

    $jordan->run();

    

    //每一次用new實例化對象的時候,都會用類名后面的參數列表調用構造函數

    $james = new NbaPlayer("James","203cm","120kg","Heat")

    echo $james->name."n";

    

    //通過把變量設為null,可以觸發析構函數的調用

    //當對象不再使用的時候會觸發析構函數

    $james = null;

    echo "from now on James will not be used.n"

?>

析構函數會在到某個對象的所有引用都被刪除或者當對象被顯式銷毀時執行。

對象的引用

<?php

//類的定義以關鍵字class開始,類的命名通常以每個單詞第一個字母大寫

    class NbaPlayer{

        public $name = "Jordan"; //定義屬性

        public $height = "198cm";

        public $team = "Bull";

        public $playerNumber = "23";

//構造函數,在對象被實例化的時候自動調用 function __construct($name,$height,$weight,$team){ echo "It is an NbaPlayer constructorn"; $this->name = $name; //$this是PHP里面的偽變量,表示對象自身。可以通過$this->的方式訪問對象的屬性和方法 $this->height = $height; $this->weight = $weight; $this->team = $team; }

//析構函數,在程序執行結束的時候會自動調用 //析構函數通常被用于清理程序使用的資源。比如程序使用了打印機,那么可以再析構函數里面釋放打印機資源 function __destruct(){ echo "Destroying".$this->name."n"; }

//定義方法 public function run(){ echo "Runningn"; } public function dribblr(){ echo "Dribblingn"; } public function pass(){ echo "Passingn"; } } //類到對象的實例化 //類的實例化為對象時使用關鍵字new,new之后緊跟類的名稱和一對括號 $jordan = new NbaPlayer("Jordan","198cm","98kg","Bull");

//對象中的屬性成員可以通過"->"符號來訪問 echo $jordan->name."n";

//對象中的成員方法可以通過"->"符號來訪問 $jordan->dribble(); $jordan->run();

//每一次用new實例化對象的時候,都會用類名后面的參數列表調用構造函數 $james = new NbaPlayer("James","203cm","120kg","Heat") echo $james->name."n";

//對象的引用用于訪問對象的屬性和方法,$james,$james1和$james2都是對象的引用 //$james和$james1是對象的兩個獨立引用 //$james2是$james的影子,使用對象的同一個引用,任何一個賦值為null相當于刪除了同一個引用 $james1 = $james; $james2 = &$james

$james = null; echo "from now on James will not be used.n" ?>



主站蜘蛛池模板: 眼皮下垂手术费用多少钱 | 流浪地球免费观看| 大秦帝国第一部免费看| 哈利学前班| 野孩子美剧| christie stevens| 郑艳丽曹查理主演的影片| 泰国xxx| 鬼迷心窍1994| 高达w| 暖春| 就义诗诗配画| 电影二十条剧情介绍| 40集电视连续剧人生之路| 寿比南山一般指多少岁| 远古食人鱼| 绝路逢生| 小丑与小丑女| 乱世危情电视剧演员表| 双勾函数的图像与性质| 黄视频免费网站| 张凯丽个人简历| 张国强个人简历| 飞艇全天精准计划软件| 男人吃女人逼视频| 极度险情| 安多卫视直播在线观看| 情侣不雅视频| 老司机你懂的视频| 知否知否应是绿肥红瘦观看| 女老师 电影| 土壤动植物的乐园教学反思| 台湾电影网| 四虎图库| 爱在西元前简谱| 吴京电影全集完整版喜剧| 同根生| 二年级合并综合算式题| 五年级下册数学期末试卷人教版| 成龙电影全部电影作品大全| 谍变1939全部演员表|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103