本文主要和大家分享PHP之封装概念详解,主要以文字和代码的形式和大家分享,希望能帮助到大家。
/* 面向对象三大特征: 封装 继承 多态 */
// ===代码部分1===
class Human {
public $money = 1000;
}$lisi = new Human();echo $lisi->money,'<br >'; //1000// 改变一下money$lisi->money = 500;echo $lisi->money,'<br >'; //500/* 然而在现实中,别人把你的钱减少了,显然是不合理的 所以我们要把钱设为私有的 */
// ===代码部分2===
class Human {
private $money = 1000; public function showMoney() {
return $this->money * 0.8;
}
}$lisi = new Human();/*
此时我们再调用或调用更改money时就会失败,
因为我们把money“封起来”了
//echo $lisi->money,'<br >'; //1000
但是,我们不能光封起来,还要能够使用才行
*//*
我们不能直接翻别人口袋有多少钱
但可以问别人,但是别人说的不一定是真的
*/echo $lisi->showMoney(); //800/* 把某些重要属性 封装起来 然后通过一个开放的接口来操作. 这就实现对属性的封装. */
// ===代码部分3===
// 封装在方法上的体现class Human {
private $money = 1000; private $bank = 2000; private function getBank($num) {
$this->bank -= $num; return $num;
} public function send($much) {
if($much <= 1000) { $this->money -= $much; return $much;
} else if($much <= $this->money + $this->bank) { $num = $much - $this->money;
//计算从银行取了多少钱
$this->money += $this->getBank($num); //从银行取出钱,加到现金里
$this->money -= $much; //再把钱借给朋友
return $much;
} else {
$this->money -= $much; return $much;
//最后若实在借不了这么多的话返回false
//return false;
}
} public function showMoney() {
return $this->money;
} public function showBank() {
return $this->bank;
}
}$lisi = new Human();$m = $lisi->send(300);if($m) { echo '借了',$m,'元<br >'; echo '还剩下',$lisi->showMoney(),'元<br >';
}// 再借2000元$m = $lisi->send(2000);if($m) { echo '借了',$m,'元<br >'; echo '还剩下',$lisi->showMoney(),'元<br >'; echo '银行还有',$lisi->showBank(),'元<br >';
}/* 对于一个对象,对外界开放一个接口, 调用接口时,内部进行的操作,不需要让外界知道. 隐藏了内部的一些实现细节. 这是对方法的封装. */
/* 面向对象三大特征: 封装 继承 多态 */
// ===代码部分1===
class Human {
public $money = 1000;
}$lisi = new Human();echo $lisi->money,'<br >'; //1000// 改变一下money$lisi->money = 500;echo $lisi->money,'<br >'; //500/* 然而在现实中,别人把你的钱减少了,显然是不合理的 所以我们要把钱设为私有的 */
// ===代码部分2===
立即学习“PHP免费学习笔记(深入)”;
class Human {
private $money = 1000; public function showMoney() {
return $this->money * 0.8;
}
}$lisi = new Human();/*
此时我们再调用或调用更改money时就会失败,
因为我们把money“封起来”了
//echo $lisi->money,'<br >'; //1000
但是,我们不能光封起来,还要能够使用才行
*//*
我们不能直接翻别人口袋有多少钱
但可以问别人,但是别人说的不一定是真的
*/echo $lisi->showMoney(); //800/* 把某些重要属性 封装起来 然后通过一个开放的接口来操作. 这就实现对属性的封装. */
// ===代码部分3===
// 封装在方法上的体现class Human {
private $money = 1000; private $bank = 2000; private function getBank($num) {
$this->bank -= $num; return $num;
} public function send($much) {
if($much <= 1000) { $this->money -= $much; return $much;
} else if($much <= $this->money + $this->bank) { $num = $much - $this->money;
//计算从银行取了多少钱
$this->money += $this->getBank($num); //从银行取出钱,加到现金里
$this->money -= $much; //再把钱借给朋友
return $much;
} else {
$this->money -= $much; return $much;
//最后若实在借不了这么多的话返回false
//return false;
}
} public function showMoney() {
return $this->money;
} public function showBank() {
return $this->bank;
}
}$lisi = new Human();$m = $lisi->send(300);if($m) { echo '借了',$m,'元<br >'; echo '还剩下',$lisi->showMoney(),'元<br >';
}// 再借2000元$m = $lisi->send(2000);if($m) { echo '借了',$m,'元<br >'; echo '还剩下',$lisi->showMoney(),'元<br >'; echo '银行还有',$lisi->showBank(),'元<br >';
}/* 对于一个对象,对外界开放一个接口, 调用接口时,内部进行的操作,不需要让外界知道. 隐藏了内部的一些实现细节. 这是对方法的封装. */
相关推荐:
以上就是PHP之封装概念详解的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号