類與對象

來源:互聯網
上載者:User

標籤:定義變數   可見   new   傳值   .com   3.2   物件導向   1.2   概念   

類與對象

張三是一個對象,李四也是一個對象。王五同樣是一個對象。。。。。

他們都隸屬於“人”這個“類”(人類),同時我們也可以說隸屬於“脊椎動物類”,還可以說屬於動物類,甚至生物。

 

類(抽象):是用於描述“某一些具有共同特徵”的物體的概念,是某一類物體的總稱。

  通常,一個類所具有的共同特徵包括2大方面的資訊:

    外觀,形狀,描述,資料。。。。。屬性

    行為,動作,功能。。。。。。。。方法。

對象(具體執行個體):是指一個具體的“物體”,該物體隸屬於某個“類別”(類)。

  通常,對象離不開類,沒有類,就不能有對象

 

可見,類無非就是將一個變數和一些函數以及一些常量用一個“名字”包起來了,此名字就是“類名”。

另一方面,我們就說,這些屬性,函數,和常量就“隸屬於”該類——只能由該類(及其建立出來的對象)來使用。

 

原來(在面向過程)的文法中,我們的代碼有如下幾種代碼:

  定義變數;

  定義函數;

  使用變數(輸出,賦值,等)

  調用函數;

  流程式控制制(if,switch,for,while等)

 

在物件導向的文法中,則情況就發生變化了:

  1,定義類;定義類的文法中,只有這3種代碼:

1.1定義屬性(變數)

1.2定義方法(函數)

1.3定義常量(類常量)

2,建立類的對象;

 

3,使用對象;

  使用對象也幾乎只有3個方式:

3.1使用其屬性:因為屬性就是“變數”,則使用其屬性,也就是跟以前使用變數一樣。

3.2使用其方法:因為方法就是“函數”,則使用其方法,也就是跟以前使用函數一樣。

3.3使用其常量:類似使用以前的普通常量。

 

 

對象建立的基本形式

方式1:

  $對象名1  =  new  類名(); //對象名就是變數名;類是應該定義過了

方式2:

 

方式3:

  $對象名3 = new  self; //self指代類本身,這行代碼只能在類內部方法中使用。

 

方式4:通過對象建立對象

  new 對象名;//建立該對象所屬類的一個新對象

 

 

對象的傳值

回顧:

php中,變數傳值方式有2個:

  值傳遞: 傳遞的時候,拷貝的是資料本身。預設都是值傳遞。

    結果:傳遞完之後,有了2份同樣的資料,但兩個變數“相互獨立”沒有關係。

  引用傳遞: 傳遞的時候,拷貝的是參考關聯性。需要使用“&”才能實現引用傳遞。

    結果:傳遞完之後,資料仍然只有一份,但是兩個變數共同指向該資料。

 

則在物件導向這個層面,基本來說,仍然如此:

  預設是值傳遞:

  可以使用引用傳遞:

先觀察一個現象:

 

這是什麼原因?

原來,對象的儲存跟普通變數的儲存有所區別:

  普通變數:$s1 = 10;

   

 

  對於對象(變數):

  $obj1 = new P();

   

 

  則物件變數複製的時候,值傳遞就變成這樣:

  $obj2 = $obj1; //值傳遞

   

 

可見,物件變數進行普通傳值的時候,複製的是物件變數中所儲存的“物件識別碼”

 

那麼,我們斷開$p1跟其儲存的資料(標識符)之間的關係,結果是:$p2還有效:

 

可見$p1和$p2之間是值傳遞。

再來對比看看引用傳遞:

 

 

類與對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.