天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

php學習筆記 php中面向對象三大特性之一[封裝性]的應用

復制代碼 代碼如下:
<?php
/*
* 封裝性:面向對象三大特性之一
*
* 1.就是把對象的成員(屬性,方法)結合成一個獨立的相同單位,并盡可能隱藏對象的內部細節
* 訪問權限修飾符 public protected private
* private:私有的,用這個關鍵字修飾的成員,只能在對象內部訪問(只有用$this訪問)
*
* 屬性可以封裝:
* 只要一個變量,需要在多個方法使用,就將這個變量聲明為成員屬性,可以直接在這個對象中的所有方法中使用
*
* 成員屬性,相當于這個對象中的全局變量
*
* 成員屬性都會在方法中使用,成員屬性值的變化其實就是在改變方法的執行行為,也就是改變了對象的功能
*
* 成員屬性的值如果不正常,方法執行的功能葉就不正常
*
* 作用:不需要在對象外部改變或讀取它的值
* 1.封裝
* 再提供一個公有的方法(經過方法對對象成員屬性進行賦值和取值就可以控制)
*
*
* 方法也可以封裝
*
* 作用:
* 1.使用private修飾使其只能在內部使用
*
* 2.一個類中有100個方法,封裝了95個(為另外5個服務的方法),只有5個方法可以使用
*
* 100個成員屬性,都讓取值,不可以改值;或者只可改值,不可獲取值//此種情況下使用以下方法比較方便
* 和封裝有關的魔術方法:
*
* __set();//是直接設置[私有的]成員屬性值時,自動調用的方法
* __get();//是直接獲取[私有的]成員屬性值時,自動調用的方法
* __isset();//是直接使用isset()查看對象中私有屬性是否存在時,自動調用這個方法
* __unset();//是直接使用unset()刪除對象中私有屬性時,自動調用的方法
*
*
*
*
*
*
*
*/
class Person{
//x封裝成員屬性,不需要在對象外部改變
private $name;
private $age;
private $sex;
private __unset($proName){
unset($this->$proName);
}
//是直接查看對象中私有屬性是否存在時,自動調用這個方法
//__isset($proName)的使用,$proName代表屬性名
private function __isset($proName){
return isset($this->$proName);//isset()返回是否存在
}
function __construct($name,$age,$sex){
$this->name=$name;
$this->age=$age;
$this->sex=$sex;
}
//當獲取私有的成員屬性時,自動調用此方法
private function __get($proName)
{
//控制所獲取的值
if($proName=="age"){
if($this-age>40)
return $this->age-10;
}
return $this->$proName;
}
//當設置私有的成員屬性時,自動調用此方法
private function __set($proName,$proValue){
//$proName表示成員屬性名,$proValue表示成員屬性值
//控制設置范圍
if($proName=="age"){
if($proValue > 100 || $proValue<0)
return;
}
$this->$proName=$proValue;
}
//提供公有方法來設置成員屬性的值
function setAge($age){
//控制年齡范圍,增加安全性
if($age > 100 || $age < 0 )
return;
$this->age=$age;
}
//提供公有方法來獲取成員屬性的值
function getAge(){
//控制獲取年齡的范圍
if($this->age < 30)
return $this->age;
else if($this->age<40)
return $this->age-5;
else if($this->age<50)
return $this->age;
else
return $this->age-15;
提供公有方法來 }
function say(){
echo "我的名字:{$this->name},我的年齡:{$this->age},我的姓別:{$this->sex}<br>";
//訪問封裝過的 run()方法
$this-run();
}
private function run(){
echo '111111111111<br>'
}
function eat(){
}
//析構方法
function __destruct(){
}
}
$p1=new Person("zhangsan",25,"男");
$p2=new Person;
$p3=new Person;
//$p1->age=-50;//因為年齡在外部隨意訪問,所以成員屬性藥封裝,才有安全性。
$p1->setAge(30);//通過方法來設置成員屬性德值
$p1->getAge();//通過方法來獲取成員屬性德值
//通過添加家魔術方法__set($proName,$proValue) __get($proName),就可以直接調用成員屬性了
$p1->say();//可以調用
$p1->run();//私有的方法不能直接調用
//刪除$p1里面的name
unset($p1->name);
//判斷name是否存在
if(isset($p1->name)){
echo "存在<br>";
}else{
echo "沒有這個成員 <br>";
}
?>

作者:代號極光
出處:http://zizhuyuan.cnblogs.com

php技術php學習筆記 php中面向對象三大特性之一[封裝性]的應用,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 野花日本免费完整版高清版动漫 | 女人吃男人的鸡鸡 | 無码一区中文字幕少妇熟女网站 | 亚洲AV久久久久久久无码 | 国产精品自在在线午夜精品 | a级精品九九九大片免费看 A级韩国乱理伦片在线观看 | 亚洲国产成人精品青青草原100 | 美女国产毛片A区内射 | 国产精品一区二区三区四区五区 | 久久精品国产在热亚洲 | a级老头和老太xxxx | chinesevideos原创麻豆 | 久久精品热99看 | 一个人免费视频在线观看 | 国产精品一区二区人妻无码 | 蜜桃传媒一区二区亚洲AV | 美女张开腿露出尿口扒开来摸动漫 | 青娱乐视觉盛宴国产视频 | 日本午夜福利无码高清 | 久见久热 这里只有精品 | 55夜色66夜亚洲精品播放 | 97在线播放视频 | 亚洲高清国产品国语在线观看 | 欧美一区二区视频在线观看 | chinese情侣自拍啪hd | 理论片午午伦夜理片久久 | 午夜精品久久久内射近拍高清 | 野花日本高清在线观看免费吗 | 久久精品视频免费 | 日韩欧美一区二区三区在线视频 | 国产精品v片在线观看不卡 国产精品v欧美精品v日韩 | 国产呦精品一区二区三区下载 | 成人在线免费视频播放 | 香艳69xxxxx有声小说 | 国产人妻系列无码专区97SS | 天天射天天干天天插 | 同时被两个男人轮流舔 | 香蕉久久日日躁夜夜嗓 | 国产高清视频在线播放www色 | 扒开粉嫩的小缝末成年小美女 | 99精品中文字幕在线观看 |