亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php面向對象開發學習筆記

2024-09-04 11:43:34
字體:
來源:轉載
供稿:網友

面向對象程序設計(英語:Object-oriented programming,縮寫:OOP),指一種程序設計范型,同時也是一種程序開發的方法。對象指的是類的集合。它將對象作為程序的基本單元,將程序和數據封裝其中,以提高軟件的重用性、靈活性和擴展性

1.在定義對象方法的時候,雖然不用在前面寫public默認為公共方法,但是建議寫上。

php面向對象第一天

1.什么是面向對象?

要素:抽象性,封裝性,共享性,強調對象結構而不是程序結構。

什么是類?

可以理解成一個功能集合菜單,我們通過類來實現生成我們的方法。

例:一臺電腦

類:顯示器/鍵盤/主機...的集合(封裝)。

對象:顯示器/鍵盤/主機……其中之一,擁有自己的獨有功能。

屬性:電腦。

方法:提高功能,看電影,玩游戲,編程,上網……。

2.使用class創建一個類

有了類才能有方法。

格式:

  1. class 方法名 { 
  2. ...... 

成員屬性:自定義變量(一個名而已)。

成員方法:自定義功能。

3.類的成員屬性和成員方法

注意:使用public來定義成員屬性不要用var。

實例代碼如下:

  1. class MyPc { //聲明一個類,定義一個方法MyPc。 
  2. public $name//成員屬性。 
  3. var $price//成員屬性 
  4. function vod() { //成員方法,實現返回字符串功能。 
  5. return "test"

4.使用new函數對象實例化

格式:new 對象名(參數)

實例1代碼如下:

  1. class MyPc { //聲明一個類,定義一個方法MyPc。 
  2. public $name//成員屬性。 
  3. var $price//成員屬性 
  4. function vod() { //成員方法,實現返回字符串功能。 
  5. return "test"
  6. $pc1 = new Mypc(); //實例化 
  7. $pc1 -> name; 

實例2代碼如下:

  1. <?php 
  2. class MyPc { 
  3.  var $key
  4.  public $name
  5.  function vod() { 
  6.   echo "hello"
  7.  } 
  8. $pc1 = new MyPc(); 
  9. $pc1->key = "10101010"
  10. echo $pc1->key; 
  11. ?> 

php面向對象第二天

1.創建一個和多個對象。

2.對象中的 $this 關鍵字。

3.初始化對象 __construct()

4.析構函數 __destruct()

1.創建一個和多個對象

創建一個和多個對象我們只需要多次使用 new 函數,對類進行實例化。

實例代碼如下:

  1. class MyPc { 
  2. public $name
  3. public $price
  4. function vod() { 
  5. return "播放電影"
  6. .... 
  7. $pc1 = new MyPc(); 
  8. $pc2 = new MyPc(); 
  9. $pc3 = new MyPc(); 

2.對象中的 $this 關鍵字

$this 關鍵字是用來訪問當前對象中的對象屬性和對象方法的系統變量。

范圍:該類當中。

實例代碼如下:

  1. class MyPc { 
  2. public $name;-------- 
  3. public $price;      | 
  4.                     | 
  5. function vod() {    | 
  6. $this->name;<-------- 
  7. .... 
  8. $this->vod(); //這樣輸出調用的就是 public $name; 
  9. .... 

實例2代碼如下:

  1. <?php 
  2. class MyPc { 
  3.  public $name
  4.  function vod() { 
  5.   return $this->name . " 正在播放 未來戰警"
  6.  } 
  7.  function game() { 
  8.   return $this->vod() . " 正在運行 魔獸世界"
  9.  } 
  10. $pc1 = new MyPc(); 
  11. $pc2 = new MyPc(); 
  12. $pc1->name = "1號計算機"
  13. $pc2->name = "2號計算機"
  14. echo $pc1->vod() . "<br />"
  15. echo $pc2->game() . "<br />"
  16. ?> 

3.初始化對象 __construct()

初始化相當于就是預先預定好某個成員屬性的初始值。

格式:

  1. class MyPc { 
  2. function __construct() { 
  3. 初始化操作 

實例代碼如下:

  1. <?php 
  2. class MyPc { 
  3.  public $name
  4.  function __construct($name = "") { //初始化。 
  5.   $this->name = $name//把初始化內容第四行的 $name = "" 賦值給 $this 取到的第三行的 public $name;。 
  6.  } 
  7.  function vod() { 
  8.   return $this->name . " 正在播放 未來戰警"
  9.  } 
  10.  function game() { 
  11.   return $this->vod() . " 正在運行 魔獸世界"
  12.  } 
  13. $pc1 = new MyPc("1號計算機"); //這里進行初始化。 
  14. $pc2 = new MyPc("2號計算機"); 
  15. echo $pc1->vod() . "<br />"
  16. echo $pc2->game() . "<br />"
  17. ?> 

4.析構函數 __destruct()

能夠在對象釋放時自動被調用的方法,被成為析構函數,也能理解為垃圾回收機制。

規則:后進先出,先實例化后釋放,最后實例化調用,最先釋放,最后被調用。

實例代碼如下:

  1. <?php 
  2. class MyPc { 
  3.  public $name
  4.  function __construct($name = "") { 
  5.   $this->name = $name
  6.  } 
  7.  function vod() { 
  8.   return $this->name . " 正在播放 未來戰警"
  9.  } 
  10.  function game() { 
  11.   return $this->vod() . " 正在運行 魔獸世界"
  12.  } 
  13.  function __destruct() { //后進先出。 
  14.   echo "<br />垃圾回收機制:" . $this->name . "<br />"
  15.  } 
  16. $pc1 = new MyPc("1號計算機"); 
  17. $pc2 = new MyPc("2號計算機"); 
  18. echo $pc1->vod() . "<br />"
  19. // $pc1 = null; //這里是當特殊需要執行完畢立即回收內存的話,可以使用null。 
  20. echo $pc2->game() . "<br />"
  21. ?> 

php面向對象第三天

類的封裝和應用

1.封裝關鍵字:public , protected , private。

2.封裝相關函數:__set() , __get()。

1.封裝關鍵字:public , protected , private

封裝是把一些相關的屬性和行為隱藏起來,從而得到保護和安全。

封裝關鍵字

public:表示全局,類內部外部子類都可以訪問。

protected:表示受保護的,只有本類或子類或父類中可以訪問。

private:表示私有的,只有本類內部可以使用。[重要:這個關鍵字在使用時,調用私有屬性或方法,只能在本類調用,感覺就像多一道工序,做一個跳板。詳見實例2]

       public     protected     private

 全局     1           0            0

繼承類    1           1            0

 本類     1           1            1

實例代碼如下:

  1. <?php 
  2. class MyPc { 
  3.  public $name//公共屬性 
  4.  protected $price//保護屬性 
  5.  private function vod() { //私有屬性 
  6.   $this->name; 
  7.  } 
  8.   . . . 
  9.  } 
  10. ?> 

實例2代碼如下:

  1. <?php 
  2. class MyPc { 
  3.  private $name
  4.  function __construct($name = "") { 
  5.   return $this->name = $name
  6.  } 
  7.  private function open() { 
  8.   return $this->name . "---打開電源,正在開機"
  9.  } 
  10.  public function ok() { 
  11.   return $this->open() . "---OK"
  12.  } 
  13. $pc = new MyPc("我的電腦"); 
  14. echo $pc->ok(); 
  15. ?> 

分裝相關函數: __set() , __get() 作用:操作私有屬性或方法。

__set():取得當前類中封裝過的私有屬性或私有方法,重新執行或賦值操作。

格式:__set($n,$v)

__get():取得(間接訪問防止裸輸出)當前類中封裝過的屬性或方法并轉換成公有屬性。

__get/__set實例代碼如下:

  1. <?php 
  2. class MyPc { 
  3.  private $name
  4.  public function __construct($name = "") { 
  5.   return $this->name = $name
  6.  } 
  7.  public function __get($name) { 
  8.   return $this->name . "__get"
  9.  } 
  10.  public function __set($n$v) { //$n對應對象屬性$name,$v對應倒數第三行__set。 
  11.   $this-> $n = $v
  12.  } 
  13.  private function open() { 
  14.   return $this->name . "---打開電源,正在開機"
  15.  } 
  16.  public function ok() { 
  17.   return $this->open() . "---OK"
  18.  } 
  19. $pc = new MyPc("我的電腦"); 
  20. $pc->name = "__set"
  21. echo $pc->name; 
  22. ?> 

類的繼承和應用

1.繼承關鍵字:extends。

2.PHP繼承的規則。

3.基類方法重載和基類方法訪問。

1.繼承關鍵字:extends

PHP類的繼承,我們可以理解成共享被繼承類(基類)的類容。

注意:PHP是單一繼承。

2.格式,代碼如下:

  1. class MyPc { 
  2. ... 
  3. class Home extends MyPc { 
  4. ... 

3.基類方法重載和基類方法訪問

格式:基類名::原始基類方法名稱

4.實例

繼承,代碼如下:

  1. <?php 
  2. class Root { 
  3.  public function print1() { 
  4.   return "Root_print"
  5.  } 
  6. class Son extends Root { 
  7.  public function print2() { 
  8.   return "Son_print"
  9.  } 
  10. $p = new Son(); 
  11. echo $p->print1(); 
  12. ?> 

重載,如果基類的某個方法需要在派生類中加強,那么可以用重載功能,代碼如下:

  1. <?php 
  2. class Root { 
  3.  public function print1() { 
  4.   return "Root_print"
  5.  } 
  6. class Son extends Root { 
  7.  public function print1() { 
  8.   return Root :: print1() . "<br />Son_print"
  9.  } 
  10. $p = new Son(); 
  11. echo $p->print1(); 
  12. ?> 

類的抽象方法和類

其實也可以理解為,這是一個規范。在類的開頭定義一個抽象類和方法,然后在下面的類繼承抽象類,這樣可以強制規范以下派生類的方法命名(就只是在抽象類中定義的抽象方法名,還可自己增加,但是主要的不能修改)。

1.抽象關鍵字:abstract。

2.抽象方法和抽象類的定義。

3.抽象類和方法使用規則。

1.抽象關鍵字:abstract

抽象就是無法確切的說明,但又有一定的概念或者名稱。

2.抽象方法和抽象類的定義

一個類至少有一個方法是抽象的,我們稱之為抽象類,所以如果定義抽象類首先定義抽象方法。

格式:

  1. abstract class class1 { 
  2. abstract function fun1(); 
  3. ... 

注意:1.類中至少有一個抽象方法。;2.抽象方法不允許有{}。;3.抽象方法前面必須加 abstract 。

3.抽象類和方法使用規則

抽象類特點:

1.不能被實例化,只能被繼承。

2.繼承的派生類當中要把所有抽象方法重載才能被實例化。

格式(不可以實例化):

  1. abstract class cl1 { 
  2. abstract function fun1(); 
  3. ... 

格式(可以實例化):

  1. class cl2 extends cl1 { 
  2. function fun1() { //重載抽象方法 
  3. ... 

實例代碼如下:

  1. <?php 
  2. abstract class ChouXiang { 
  3.  abstract function fun1(); 
  4. class PaiShengLei extends ChouXiang { 
  5.  public function fun1() { //重載 
  6.   echo "test"
  7.  } 
  8. $p = new PaiShengLei(); 
  9. $p->fun1(); 
  10. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产福利在线| 欧美精品在线看| 国产亚洲在线播放| 国产欧美va欧美va香蕉在| 亚洲精品福利视频| 国产欧美精品在线播放| 在线播放国产一区二区三区| 中文字幕亚洲图片| 国产欧美婷婷中文| 亚洲欧美在线一区二区| 538国产精品视频一区二区| 91在线观看免费高清完整版在线观看| 庆余年2免费日韩剧观看大牛| 亚洲白拍色综合图区| 精品国产乱码久久久久酒店| 久久高清视频免费| 91精品国产91久久久久久吃药| 亚洲图片在区色| 2019中文字幕免费视频| 这里只有精品在线播放| 日韩精品www| 国产精品大片wwwwww| 国产日韩在线视频| 色狠狠av一区二区三区香蕉蜜桃| 国产精自产拍久久久久久蜜| 国产+人+亚洲| 久久久精品国产一区二区| 欧美重口另类videos人妖| 色偷偷亚洲男人天堂| 97久久久免费福利网址| 亚洲美女喷白浆| 欧美大秀在线观看| 亚洲一区二区三区在线视频| 日韩一区二区福利| 成人中文字幕在线观看| 91在线免费观看网站| 精品夜色国产国偷在线| 欧美日韩国产成人| 久久久视频在线| 日韩av在线免费| 亚洲天堂男人天堂女人天堂| 久久av在线看| 日韩精品视频在线观看网址| 欧美在线视频免费观看| 午夜精品久久久久久久99热| 国产精品免费久久久| 在线看国产精品| 亚洲天堂av综合网| 欧美激情视频在线| 欧美电影在线观看网站| 欧美性猛交xxxx| 亚洲精品在线视频| 国内精品模特av私拍在线观看| 国产精品久久久久久久7电影| 久久69精品久久久久久国产越南| 欧美色道久久88综合亚洲精品| 日韩三级影视基地| 欧美一区二区三区免费观看| 日韩av成人在线观看| 国内成人精品一区| 欧洲永久精品大片ww免费漫画| 国产999在线观看| 国产精品美女无圣光视频| 久久久久久久久久亚洲| 欧美成人激情图片网| 亚洲www永久成人夜色| 国产成人啪精品视频免费网| 亚洲精品国产精品乱码不99按摩| 日韩中文在线中文网在线观看| 国产丝袜视频一区| 国产亚洲免费的视频看| 高清欧美一区二区三区| 亚洲欧美综合图区| 在线丨暗呦小u女国产精品| 红桃视频成人在线观看| 国产精品稀缺呦系列在线| 国产精品福利观看| 国产一区二区三区精品久久久| 亚洲伊人一本大道中文字幕| 26uuu亚洲伊人春色| 日韩av手机在线| 成人黄色在线免费| 亚洲黄色www| 久久国产天堂福利天堂| 欧美日韩成人在线观看| 国模精品一区二区三区色天香| 色偷偷av亚洲男人的天堂| 热99久久精品| 在线观看日韩www视频免费| 欧美激情视频网站| 国产精品久久久久久久久久久不卡| 欧美午夜精品久久久久久人妖| 亚洲xxx自由成熟| 国产精品视频yy9099| 亚洲福利在线观看| 麻豆乱码国产一区二区三区| 欧美精品久久久久久久免费观看| 福利一区视频在线观看| 中文字幕无线精品亚洲乱码一区| 国产精品久久久久影院日本| 亚洲人成网7777777国产| 日韩中文字幕视频在线| 国产欧美日韩精品在线观看| 中文字幕自拍vr一区二区三区| 国产精品高潮呻吟久久av野狼| 日韩国产欧美精品一区二区三区| 成人性生交大片免费看视频直播| 中文字幕亚洲色图| 久久人人爽人人爽人人片亚洲| 91精品国产99久久久久久| 欧美性受xxxx白人性爽| 精品国产区一区二区三区在线观看| 日韩在线免费视频观看| 5278欧美一区二区三区| 国产精品色午夜在线观看| 国产aⅴ夜夜欢一区二区三区| 亚洲精品视频播放| 668精品在线视频| 欧洲精品毛片网站| 久久大大胆人体| 亚洲男人天堂视频| 日韩中文字幕第一页| 国产伦精品一区二区三区精品视频| 欧美在线视频在线播放完整版免费观看| 国产精品视频在线观看| 欧美最近摘花xxxx摘花| 亚洲性生活视频在线观看| 久久99亚洲热视| 日韩精品在线视频美女| 欧美成人性生活| 韩国国内大量揄拍精品视频| 一区二区在线视频播放| 欧美亚洲在线视频| 欧美国产视频日韩| 尤物精品国产第一福利三区| 久久人人爽人人爽人人片av高清| 欧美亚洲国产日本| 欧美午夜激情小视频| 亚洲精品98久久久久久中文字幕| 亚洲视频视频在线| 亚洲精品二三区| 久久国内精品一国内精品| 人人澡人人澡人人看欧美| 亚洲人成网站777色婷婷| 7m精品福利视频导航| 亚洲精品www| 日韩一区二区三区xxxx| 国产日韩欧美在线看| 久久久久久久久中文字幕| 亚洲精品视频在线播放| 91影院在线免费观看视频| 国产精品免费电影| 欧美日韩国产一区中文午夜| 欧美日韩成人网| 国产国语videosex另类| 国产日韩精品在线观看| 亚洲伦理中文字幕| 久久久欧美一区二区| 亚洲男人7777| 国产精品久久一| 久久精品视频亚洲| 91久久久久久久久久久久久| 国产精品久久一区主播| 性欧美亚洲xxxx乳在线观看|