PHP面向对象三大特性之封装性
28
2014-01-19
封装性是PHP面向对象编程中的三大特性之一,封装就是把对象中的成员属性和成员方法加上访问修饰符,使其尽可能隐藏对象的内部细节,以达到对成员的访问控制,且不是拒绝访问。
将一些特殊的方法加上关键字private
修饰,就不能在对象外部使用,只能在对象内部调用。
class wifeClass { // 成员属性 public $name; private $age; private $sex; function __construct( $name, $age, $sex='女' ) { echo "构造方法
"; $this->name = $name; $this->age = $age; $this->sex = $sex; } public function setSex( $sex ) { if ( !($sex=='男' or $sex == '女') ) return; $this->sex = $sex; } public function getAge() { if ( $this->age < 20 ) { return $this->age; } elseif ( $this->age > 30 ) { return $this->age-5; } } private function say() { echo "{$this->name} 说话了:我是{$this->sex}性,{$this->getAge()}岁了(其实是{$this->age}岁了)。
"; } public function run() { $this->run_left(); $this->run_right(); $this->run_go(); } private function run_left() { echo '迈左脚
'; } private function run_right() { echo '迈右脚
'; } private function run_go() { echo '前进
'; } // 成员方法 public function eat( $rou, $cai ) { echo "{$this->name} 吃饭了
"; // private 只能在内部调用 $this->say(); } function __destruct() { echo "{$this->name} 再见!
"; } } $wife = new wifeClass('Nox', '31'); // 对象内部调用private $wife->eat( '鸡肉', '蘑菇' ); // 对象内部调用private $wife->run(); // 无法在外部读取 // echo $wife->sex(); // 只允许改男女 $wife->setSex('男'); $wife->eat( '鸡肉', '蘑菇' ); /* 打印结果: 构造方法 Nox 吃饭了 Nox 说话了:我是女性,26岁了(其实是31岁了)。 迈左脚 迈右脚 前进 Nox 吃饭了 Nox 说话了:我是男性,26岁了(其实是31岁了)。 Nox 再见! */
本文由 猫斯基 原创发布。
著作权均归用户本人所有。独家文章转载,请联系本站管理员。获得授权后,须注明本文地址! 本文地址:https://www.maosiji.com/2551.html