評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 0,平均評等: 0]
再上一篇教學中我們看到 類別生成後竟然可以直接讀寫屬性值,原來是 oop 中的重要角色 public ( 公開 ) private ( 私有 ) protected ( 保護 ) final (最終) 還沒上場。
//原來物件導向有三個很重要的存取設定值(修飾符) //static 靜態 不用生成類別 就可以直接 存取 這部份也是留著之後再寫範例 //public 公開 生成類別後 不論在 類別的內部 或 外部都可以 寫入讀取屬性的值 //private 私有 生成類別後 只可以在 類別的內部 寫入讀取屬性的值 //protected 保護 生成類別後 只可以在 類別的內部 或是 繼承類別中 寫入讀取屬性的值 這部份留著之後再寫範例 //final 當類別名稱前加上 final 即表示這個類別不允許繼承,如果是在類別中的某個方法 即表示該方法不可重載 但可使用 //以下修改後的範例會把 多餘的註解拿掉 class People { private $height;//身高 private $weight;//體重 private $sex;//姓別 //設定身高為 function set_height($height1) { //未設定 修飾符 預設值為 public $this->height = $height1; } //設定體重為 function set_weight($weight1) { $this->weight = $weight1; } //設定姓別為 function set_sex($sex1) { $this->sex = $sex1; } //取得身高值 function get_height() { return $this->height; } //取得身高值 function get_weight() { return $this->weight; } //取得姓別 function get_sex() { return $this->sex; } } $jeff = new People(); $jeff->set_height(170); $jeff->set_weight(65); $jeff->set_sex('male'); echo 'jeff 的身高是:'; echo $jeff->get_height(); echo '<br>jeff 的體重是:'; echo $jeff->get_weight(); echo '<br>jeff 的姓別是:'; echo $jeff->get_sex(); $jeff->height=160;//將身高的存取權限變成 private 私有後就沒辦法 直接寫入 讀取 這行以後就會出現錯誤訊息 所以之後的都不會顯示 echo '<br>jeff 的身高是:'; echo $jeff->height; //不能存取怎麼辦?…那就是透過類別裡面的方法去存取變數值 //顯示結果 /* jeff 的身高是:170 jeff 的體重是:65 jeff 的姓別是:male */ //那如果我有些方法不想給別人修改怎麼辦 屬性跟方法一樣都有 修飾符 的概念 //比如說我不想讓外面的人可以隨意得知我的姓別 private function get_sex() { return $this->sex; } echo $jeff->get_sex();//就會出現讀取錯誤 因為 get_sex 方法已被設為私有 只有在類別的內部可以讀取
本篇只會簡單介紹 public / private 兩個差異。
protected 請看這篇:https://www.webteach.tw/?p=3913
評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 0,平均評等: 0]