php學習 物件導向 課件第1/2頁

來源:互聯網
上載者:User

對象的主要三個特性
對象的行為:可以對 對象施加那些操作,開燈,關燈就是行為。
對象的形態:當施加那些方法是對象如何響應,顏色,尺寸,外型。
對象的表示:對象的表示就相當於身份證,具體區分在相同的行為與狀態下有什麼不同。

物件導向模型
物件導向的概念:
oop(物件導向的編程)它能是其代碼更加簡潔易於維護並且具有更強的可重性
什麼是類:
類是具有相同屬性和服務的一組對象的集合比如說人,書,輪船,車都屬於類,他為屬於該類的對象做了一個統一的抽象描述,在編程的語言中類是一個單獨的程式,它應該有一個類名包括屬性的說明和服務兩個部分。
什麼是對象:
對象是系統中描述客觀事件的一個實體,他是構成系統的一個基本單位。*資料與代碼都被捆綁在一個實體當中*,一個對象由一組屬性和對這組屬性進行操作的一組行為組成。
從抽象的角度來說,對象是問題域或實現域中某些事物的一個抽象。他反映該事物在系統中儲存的資訊和發揮的作用:它是一組屬性和有權對這些屬性進行操作的一個封裝體。客觀世界是由對象和對象之間的聯絡組成的。
類和對象的關係:
類與對象的關係就如模具和鑄件的關係,類的實力化的結果就是對象,而對對象的抽象就是類,類描述了一組有相同特性(屬性)和相同行為的對象。

類與屬性和方法
PHP中定義類文法格式:
class classname [可選屬性]{
public $property [=value];... //用public聲明一個公用標識 然後給予一個變數 變數也可以賦值

function functionname ( args ){ //類的方法裡的成員函數
代碼} ...
//類的方法(成員函數)
}
產生對象(類的執行個體化): $對象名=new classname( );

使用對象的屬性
在一個類中,可以訪問一個特殊指標$this當在該類中通過一個操作設定或訪問該變數時,使用$this->name來引用.
對象的產生
定義好類後用一個new來聲明,由於對象資料的封裝特性,對象是無法由主程式區塊直接存取的須通過對象來調用類中所定義的屬性和行為函數,間接地達成存取控制類中資料的目的。

對象和類的關係
對象和類的關係:
對象是實際存在的,佔有動態資源。
類是對象的藍圖,可能佔有靜態資源。
對象屬性佔有動態資源
類(靜態)屬性實際上是有類名字空間上的“全域變數”
效能考慮:
每個對象要單獨佔用資料空間
增加的調用層次可能消耗執行時間
方法的參數形式和傳遞方式
方法的參數可以是基礎資料型別 (Elementary Data Type)、數組和類對象。
基礎資料型別 (Elementary Data Type):值參傳遞
數組:值參傳遞
類對象:引用傳遞

建構函式
建構函式是在類中起到初始化的作用
建構函式的產生方法與其他函數一樣只是其名稱必須是__construct().
文法格式:function __construct(參數){
。。。。。。。。
}
範例:
class Person{
public $name;
public $sex;
public $age;
function __construct($name,$sex,$age){
echo "我是建構函式<br>";
$this->name=$name;
$this->sex=$sex;
$this->age=$age;
}
輸出結果:初始化
解構函式
當對象脫離其範圍時(例如對象所在的函數已調用完畢),系統自動執行解構函式。應在退出前在解構函式中用釋放記憶體。
解構函式__destruct 解構函式沒有任何參數
範例:class person{
function _ _destruct( )
{ echo "bye bye !“; }
}
$a=new person();

訪問類型
public 公用的(公用修飾符) 類內部與類外部都可以訪問的
private 私人的(私人修飾符) 只能在類內部訪問
protected 受保護的(保護成員修飾符) 子類可以訪問 類外部不可以訪問

oop的三個重要特性
封裝,繼承,多態
封裝性:封裝性就是把對象的屬性和行為結合成一個獨立的單位。
封裝一個類需要兩步 第一步是私人化一個類 第二步是用set和get 做出讀取賦值的操作
他的好處是:隱藏類的實現細節,可以方便加入邏輯控制性,限制對屬性的不合理操作,便於修改增強代碼的可維護性。

__get與__set
一般說把類私人話更符合現實的邏輯。
預定義兩種函數來進行擷取與敷值操作。
__get 擷取值通常是域的值
__set 設定值通常是域的值
__call 調用一個對象中不存在的方法時,就會產生錯誤call()這個方法來處理這種情況。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.