評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 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]
垃圾桶 家用 客廳 臥室 辦公室 衛生間 大容量 高顏值 創意 收納 垃圾
維力 素飄香 野菜多 素排骨雞 素紅燒牛肉 麻辣燙 麻油當歸枸杞 蔘湯麵 素食 泡麵 單包
好滋味御品/麻油猴頭菇
香積麵 藥膳 風味 84gx5包 素泡麵 純素 素食 蔬食 慈濟 靜思