評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 0,平均評等: 0]
物件導向的一大特性就是 封裝 Encapsulation ,你只要生成類別 然後 傳參數,之後就等飯吃就好了,細節就交給別人去做吧,省事又不會容易出錯。
class ck { private $budget;//預算 private $buy_status = false;//菜買了嗎? private $preapare_status = false;//備好菜了嗎? private $cooking_tatus = false;//煮好菜了嗎? private function buy(){ //最少要有500塊才夠買菜 return $this->buy_status = $this->budget > 500 ? true : false; } private function preapare(){ //備料 要先買好菜才能夠洗菜 切菜 做備料的動作 return $this->preapare_status = $this->buy_status ? true : false; } private function cooking(){ //煮飯 要先備料好才能夠煮 return $this->cooking_tatus = $this->preapare_status ? true : false; } public function serve($budget){ //上菜 你只能呼叫這個 因為它是公開的方法 其它的都不允許 在類別之外呼叫 達到保護資料確保流程正確 $this->budget = $budget; echo '<br>'.( $this->buy() ? '買好菜了' : '不夠錢'); echo '<br>'.( $this->preapare() ? '備好菜了' : '還沒買菜'); echo '<br>'.( $this->cooking() ? '煮好菜了' : '還沒備菜'); echo '<br>'.( $this->cooking_tatus ? '上菜囉!' : '還沒煮好哦!'); } } //封裝的好處 上菜的順序 拿錢 買菜 備菜 煮菜 最後才能上菜 $c = new ck(); $c->serve(600);//我們只要呼叫上菜 跟 給錢 前置作業的細節跟流程不用管他,卡在那個階段也會跟你說明 echo '<br>'; class ck1 { // 我們把所有的屬性方法都設公開 public $budget;//預算 public $buy_status = false;//菜買了嗎? public $preapare_status = false;//備好菜了嗎? public $cooking_tatus = false;//煮好菜了嗎? public function buy(){ //最少要有500塊才夠買菜 return $this->buy_status = $this->budget > 500 ? true : false; } public function preapare(){ //備料 要先買好菜才能夠洗菜 切菜 做備料的動作 return $this->preapare_status = $this->buy_status ? true : false; } public function cooking(){ //煮飯 要先備料好才能夠煮 return $this->cooking_tatus = $this->preapare_status ? true : false; } public function serve(){ //上菜 echo '<br>'.( $this->cooking_tatus ? '上菜囉!' : '還沒煮好哦!'); } } $a = new ck1();//你就要辛苦的自已 一個一個給值 然後照順序的呼叫方法 不然你永遠吃不了飯 $a->budget=600; $a->buy(); $a->preapare(); $a->cooking(); $a->serve(); echo '<br>'; $b = new ck1(); $b->budget=600; $b->preapare();//怎麼還沒買菜就先備菜? $b->buy(); $b->cooking(); $b->serve();//看吧!你永遠也吃不了飯了 //顯示結果 /* 買好菜了 備好菜了 煮好菜了 上菜囉! 上菜囉! 還沒煮好哦! */
評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 0,平均評等: 0]