閒話少說,我們來正經的,我們的小車可不是隨便讓人圖圖顏色就完了(只能圖顏色的是廢車)。我們的這個小車不但能夠到處亂跑,而且裝備了高級GPS全球定位系統,油表,裡程表。由於使用了面向對象的技術,駕馭這樣的一部小汽車一點都不難。
舉例子首先要提供一些背景材料。我們有一輛小汽車,可以在一個擁有xy坐標的地圖上按照東南西北方向任意的行駛,你可以設定小車行駛的方向和距離,小車會向你匯報它的坐標位置。
其實學習類應該和我們學習其它事物一樣,從學習使用開始,然後再學習他的原理。所以我們先來熟悉一下如何正確駕駛這樣的一個小汽車:
<?php
$startPoint = & new Position(3,9); //初始一個出發點坐標x=3,y=9
$myCar = & new Car(500,$startPoint); //我得到一個新的小車,新車初始燃油 500 升,出發地點$startPoint。
$myCar->setHeading('s'); //給小車設定方向 s:南方 n:北方 w:西方 e:東方。
if($myCar->run(100)) //然後讓小車跑100公裡,假如順利完成任務顯示燃油量。假如半途而廢,我們顯示警報信息。
{
print('<br><b>小車一切正常,目前還有燃油:'.$myCar->getGas().'</b>');//獲得燃油數
}
else
{
print('<br><b>小車出問題了: '.$myCar->getWarning().'</b>');//顯示警報信息
}
$myPosition=$myCar->getPosition();//獲得小車當前的位置
print('<br>我的小車現在<br> X:'.$myPosition->getX().'Y:'.$myPosition->getY());//顯示小車的坐標位置
?>
先給自己制造一個小汽車,並且給他裝備上一個定位對象 Position。 然後設定方向, 然後讓小車奔跑。 最後檢查並輸出小車的方位。 復雜麼?很難理解嗎? 雖然這裡我們用到了兩個對象(類):Car 和 Position 但是我相信即使是初學者也不會覺得上面的代碼很困難。
我們學會如何開車了以後,再來仔細看一看這個小車對象是怎樣工作的。定義一個對象其實很簡單只需要 用一個要害字class 和一對{}就可以了,所以我們這樣定義這兩個對象:
class Car {}
class Position{}
當然,僅僅這樣的兩個類什麼也做不了,我們還需要給他們增加一些功能,先從小汽車開始,我們需要能夠給小車設定方向並且讓小車奔跑所以我們增加兩個方法,也就是2個函數只不過這兩個函數包含在小車對象內只有通過小車對象才可以使用。
setHeading()
run()
class Car
{
function setHeading($direction)
{
}
function run($km)
{
}
}
非凡提示:設計一個良好的類的竅門是從如何使用它下手,也就是說先考慮這個對象應當有哪些方法,而不是先確定它有哪些屬性。
為了更好的了解小車的狀況我們還需要這些方法:
getGas() 獲得小車當前的燃油數
getPosition() 獲得小車當前的位置
getWarning() 警報信息
為了完成這些功能我們的小車還需要自己的油表,警報消息,和定位儀。我們把這些也添加到 Car 類中,同時我們還給這個類增加了一個初始化的函數 這個函數名字和類的名字一樣,這樣就有了一個大體的框架。
<?php
class Car
{
/**
* 小車的汽油量
*
*@var
*@access
*/
var $gas;
/**
* 裡程記錄