php物件導向開發學習筆記_PHP教程

來源:互聯網
上載者:User
物件導向程式設計(英語:Object-oriented programming,縮寫:OOP),指一種程式設計範型,同時也是一種程式開發的方法。對象指的是類的集合。它將對象作為程式的基本單元,將程式和資料封裝其中,以提高軟體的重用性、靈活性和擴充性

注意:
1.在定義對象方法的時候,雖然不用在前面寫public預設為公用方法,但是建議寫上。

php物件導向第一天

1.什麼是物件導向?


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

什麼是類?
可以理解成一個功能集合菜單,我們通過類來實現產生我們的方法。
例:一台電腦
類:顯示器/鍵盤/主機...的集合(封裝)。
對象:顯示器/鍵盤/主機……其中之一,擁有自己的專屬功能。
屬性:電腦。
方法:提高功能,看電影,玩遊戲,編程,上網……。

2.使用class建立一個類
有了類才能有方法。
格式:
class 方法名 {
......
}

成員屬性:自訂變數(一個名而已)。
成員方法:自訂功能。

3.類的成員屬性和成員方法
注意:使用public來定義成員屬性不要用var。

執行個體:

代碼如下 複製代碼
class MyPc { //聲明一個類,定義一個方法MyPc。
public $name; //成員屬性。
var $price; //成員屬性
function vod() { //成員方法,實現返回字串功能。
return "test";
}
}


4.使用new函數對象執行個體化
格式:new 對象名(參數)
執行個體1:

代碼如下 複製代碼

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

$pc1 = new Mypc(); //執行個體化
$pc1 -> name;


執行個體2:

代碼如下 複製代碼

class MyPc {

var $key;
public $name;

function vod() {
echo "hello";
}

}

$pc1 = new MyPc();
$pc1->key = "10101010";

echo $pc1->key;
?>


php物件導向第二天


1.建立一個和多個對象。
2.對象中的 $this 關鍵字。
3.初始化對象 __construct()
4.解構函式 __destruct()

-----------------------------------------

1.建立一個和多個對象
建立一個和多個對象我們只需要多次使用 new 函數,對類進行執行個體化。
執行個體:

代碼如下 複製代碼

class MyPc {
public $name;
public $price;

function vod() {
return "播放電影";
}
....
}

$pc1 = new MyPc();
$pc2 = new MyPc();
$pc3 = new MyPc();

2.對象中的 $this 關鍵字
$this 關鍵字是用來訪問當前對象中的對象屬性和對象方法的系統變數。
範圍:該類當中。
執行個體:

代碼如下 複製代碼
class MyPc {
public $name;--------
public $price; |
|
function vod() { |
$this->name;<--------
}
....
$this->vod(); //這樣輸出調用的就是 public $name;
....
}

執行個體2:

代碼如下 複製代碼

class MyPc {
public $name;

function vod() {
return $this->name . " 現正播放 未來戰警";
}
function game() {
return $this->vod() . " 正在運行 魔獸世界";
}

}
$pc1 = new MyPc();
$pc2 = new MyPc();

$pc1->name = "1號電腦";
$pc2->name = "2號電腦";
echo $pc1->vod() . "
";
echo $pc2->game() . "
";
?>


3.初始化對象 __construct()
初始化相當於就是預先預定好某個成員屬性的初始值。

格式:
class MyPc {
function __construct() {
初始化操作
}
}

執行個體:

代碼如下 複製代碼

class MyPc {
public $name;

function __construct($name = "") { //初始化。
$this->name = $name; //把初始化內容第四行的 $name = "" 賦值給 $this 取到的第三行的 public $name;。
}

function vod() {
return $this->name . " 現正播放 未來戰警";
}

function game() {
return $this->vod() . " 正在運行 魔獸世界";
}

}
$pc1 = new MyPc("1號電腦"); //這裡進行初始化。
$pc2 = new MyPc("2號電腦");

echo $pc1->vod() . "
";
echo $pc2->game() . "
";
?>

4.解構函式 __destruct()
能夠在對象釋放時自動被調用的方法,被成為解構函式,也能理解為記憶體回收機制。
規則:後進先出,先執行個體化後釋放,最後執行個體化調用,最先釋放。
最後被調用。

執行個體:

代碼如下 複製代碼

class MyPc {
public $name;

function __construct($name = "") {
$this->name = $name;
}

function vod() {
return $this->name . " 現正播放 未來戰警";
}

function game() {
return $this->vod() . " 正在運行 魔獸世界";
}

function __destruct() { //後進先出。
echo "
記憶體回收機制:" . $this->name . "
";
}

}
$pc1 = new MyPc("1號電腦");
$pc2 = new MyPc("2號電腦");

echo $pc1->vod() . "
";
// $pc1 = null; //這裡是當特殊需要執行完畢立即回收記憶體的話,可以使用null。
echo $pc2->game() . "
";
?>

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

執行個體:

代碼如下 複製代碼

class MyPc {
public $name; //公用屬性
protected $price; //保護屬性

private function vod() { //私人屬性
$this->name;
}
. . .
}
?>

執行個體2:

代碼如下 複製代碼

class MyPc {
private $name;
function __construct($name = "") {
return $this->name = $name;
}
private function open() {
return $this->name . "---開啟電源,正在開機";
}
public function ok() {
return $this->open() . "---OK";
}
}
$pc = new MyPc("我的電腦");
echo $pc->ok();
?>


分裝相關函數: __set() , __get() 作用:操作私人屬性或方法。
__set():取得當前類中封裝過的私人屬性或私人方法,重新執行或賦值操作。
格式:__set($n,$v)

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

__get/__set執行個體:

代碼如下 複製代碼

class MyPc {
private $name;
public function __construct($name = "") {
return $this->name = $name;
}

public function __get($name) {
return $this->name . "__get";
}
public function __set($n, $v) { //$n對應對象屬性$name,$v對應倒數第三行__set。
$this-> $n = $v;
}
private function open() {
return $this->name . "---開啟電源,正在開機";
}
public function ok() {
return $this->open() . "---OK";
}
}
$pc = new MyPc("我的電腦");
$pc->name = "__set";
echo $pc->name;
?>

類的繼承和應用

1.繼承關鍵字:extends。
2.PHP繼承的規則。
3.基類方法重載和基類方法訪問。

------------------------------------------------

1.繼承關鍵字:extends
PHP類的繼承,我們可以理解成共用被繼承類(基類)的類容。
注意:PHP是單一繼承。

2.格式

代碼如下 複製代碼

class MyPc {
...
}

class Home extends MyPc {
...
}

3.基類方法重載和基類方法訪問
格式:基類名::原始基類方法名稱

4.執行個體
繼承:

代碼如下 複製代碼

class Root {
public function print1() {
return "Root_print";
}
}

class Son extends Root {
public function print2() {
return "Son_print";
}
}

$p = new Son();
echo $p->print1();
?>

重載:
如果基類的某個方法需要在衍生類別中加強,那麼可以用重載功能

代碼如下 複製代碼

class Root {
public function print1() {
return "Root_print";
}
}

class Son extends Root {
public function print1() {
return Root :: print1() . "
Son_print";
}
}

$p = new Son();
echo $p->print1();
?>


類的抽象方法和類

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

1.抽象關鍵字:abstract。
2.抽象方法和抽象類別的定義。
3.抽象類別和方法使用規則。

-----------------------------------------

1.抽象關鍵字:abstract
抽象就是無法確切的說明,但又有一定的概念或者名稱。

2.抽象方法和抽象類別的定義
一個類至少有一個方法是抽象的,我們稱之為抽象類別。
所以如果定義抽象類別首先定義抽象方法。
格式:
abstract class class1 {

abstract function fun1();

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

3.抽象類別和方法使用規則
抽象類別特點:
1.不能被執行個體化,只能被繼承。
2.繼承的衍生類別當中要把所有抽象方法重載才能被執行個體化。
格式(不可以執行個體化):
abstract class cl1 {

abstract function fun1();

...
}

格式(可以執行個體化):
class cl2 extends cl1 {

function fun1() { //重載抽象方法
}
...
}

---------------------------------------------------
執行個體:

代碼如下 複製代碼

abstract class ChouXiang {
abstract function fun1();

}

class PaiShengLei extends ChouXiang {
public function fun1() { //重載
echo "test";
}
}

$p = new PaiShengLei();
$p->fun1();
?>

http://www.bkjia.com/PHPjc/632644.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632644.htmlTechArticle物件導向程式設計(英語:Object-oriented programming,縮寫:OOP),指一種程式設計範型,同時也是一種程式開發的方法。對象指的是類的集合...

  • 聯繫我們

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