1. 程式人生 > >PHP面向對象(一)

PHP面向對象(一)

集合 命名 相同 get 實體 實例 3.1 接口 pri

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

1)封閉性

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

2)繼承性

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

3)多態性

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

類的定義

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

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

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

//類的定義以關鍵字class開始,類的命名通常以每個單詞第一個字母大寫
class NbaPlayer{
public $name = "Jordan"; //定義屬性
public $height = "198cm";
public $team = "Bull";
public $playerNumber = "23";

//定義方法
public function run(){
echo "Running\n";
}
public function dribblr(){
echo "Dribbling\n";
}
public function pass(){
echo "Passing\n";
}
}
//類到對象的實例化
//類的實例化為對象時使用關鍵字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面向對象(一)