封装
使用修饰符修饰成员属性和成员方法,最大限度的隐藏对象的内部细节,保证对象的完整性和安全性
对象把变量和函数用大括号装在一起
即 对象 = {成员属性+成员方法} = {变量 + 函数}
强调的是一个整体性.
对象内部, 成员方法可以直接访问成员属性. 因此,方法之间传递数据非常方便.
public 公有的
类的成员属性和成员方法, 可以在类的 外部 读取和调用.
如果成员方法前没有任何修饰符, 则默认为 public
class Person
{
public $name;
public function setName($str)
{
// 直接给成员属性赋值
$this->name = $str;
}
public function getName()
{
// 直接访问成员属性
return $this->name;
}
}
private 私有的
类的成员属性和成员方法, 只能在类的 内部 读取和调用.
私有的成员属性在类的外部 不能直接访问
私有的成员方法在类的外部 不能直接调用
// 借钱给朋友
class Person
{
private $card; // 银行卡
private $password; // 密码
private $money; // 身上的现金
// 取钱
private function qu_qian()
{
$this-> money = 银行->atm($this->card, $thid->password);
}
// 借给别人钱
public function gei()
{
$this->qu_qian(); // 取钱是对象自己完成的, 不需要别人知道, 所以也是私有.
return $this->money;
}
}
protected 受保护的
类的成员属性和成员方法, 只能在本类和子类中的 内部 读取和调用.
受保护的成员属性在类的外部 不能直接访问
受保护的成员方法在类的外部 不能直接调用
class Person
{
protected $name;
protected $sex;
protected $age;
protected function getAge()
{
return $this->age;
}
public function setAge($n)
{
if ($n>=0 &&