本篇會透過設定2個屬性、4個方法(成員)來完成一個水果的總價格和平均價格。
*定義成員的前綴關鍵字(public、private、protected、final):
以下關鍵字不同之處
|--public : 定義的方法範圍是公用的,即在任何一處都能相互的呼叫或存入。
|--private : 定義的方法範圍是私用的,子類別"無法繼承",即只能在該類別進行呼叫或存入。
|--protected : 定義的方法範圍是受保護的,會讓子類別"無法繼承",但可以在子類別方法調用。子類別可以用protected定義的成員。
|--final : 會讓子類別"無法繼承和覆蓋"。
補充:關於下面範例會看到的$this,其實就是個虛擬變數,會在後方加入運算子"->"來指定您要用的屬性,而被指定的屬性不必在加上"$"。
ex.$this->ktblog
1.定義兩個私用屬性$average、$total(平均價格、總價)
2.定義四個方法(加總金額、平均金額、設定金額、秀出金額)
設定金額的方法,需要傳入參數指定為類別的屬性值,故前綴需用public。而秀出金額的方法主要是提供外部呼叫,所以前綴需用public。
3.最後是建立物件,呼叫物件中的方法,將屬性值秀出
範例如下
底下的範例中,<?php $object->show(); ?>我把它放入到table標籤內,最後呈現出來的結果會是像這樣:
<?php
class fruit{
//public(公用) 任何一處都能相互的呼叫或存入
//private(私用) 只能在類別裡面,相互的呼叫或存入
//宣告"總額、平均"的屬性,存取範圍定性在private
private $total;
private $average;
//水果的總金額
private function totalmoney(){
return $this->apple + $this->banana + $this->orange;
}
//水果的平均金額
private function averagemoney(){
return round($this->total/3);
}
//設定水果的金額
public function setprice($kapple,$kbanana,$korange){
$this->apple = $kapple;
$this->banana = $kbanana;
$this->orange = $korange;
$this->total = $this->totalmoney(); //指定總金額的方法存入於 $this->total
$this->average = $this->averagemoney(); //指定平均金額的方法存入於 $this->average
}
public function show(){
echo "蘋果價格=".$this->apple."<br/>";
echo "香蕉價格=".$this->banana."<br/>";
echo "橘子價格=".$this->orange."<br/>";
echo "總價格=".$this->total."<br/>";
echo "平均價格=".$this->average."<br/>";
}
}
$object = new fruit();
$object->setprice("100","200","150");
?>
<table border="3">
<tr>
<td><?php $object->show(); ?></td>
</tr>
</table>
沒有留言:
張貼留言