您好,欢迎访问一九零五行业门户网

php面向对象编程程序设计

实例化对象(创建对象)-->使用对象
 *
 *
 *  最难得是如何设计出面向对象的程序,而不是面向对象的语法。
 *
 */
?>
原来的成员:var $name;   //声明人的姓名var $sex;    //声明人的性别var $age;    //声明人的年龄function run(){…….}改成封装的形式:private $name;          //把人的姓名使用private关键字进行封装private $sex;      //把人的性别使用private关键字进行封装private $age;      //把人的年龄使用private关键字进行封装private function run(){……}  //把人的走路方法使用private关键字进行封装注意:只要是成员属性前面有其它的关键字就要去掉原有的关键字var。通过private就可以把人的成员(成员属性和成员方法)封装上了。封装上的成员就不能被类外面直接访问了,只有对象内部自己可以访问;下面的代码会产生错误:class person{//下面是人的成员属性private $name; //人的名子,被private封装上了private $sex; //人的性别, 被private封装上了private $age; //人的年龄, 被private封装上了//这个人可以说话的方法function say(){echo 我的名子叫:.$this->name. 性别:.$this->sex. 我的年龄是:.$this->age.
;}//这个人可以走路的方法, 被private封装上了private function run(){echo 这个人在走路;}}//实例化一个人的实例对象$p1=new person();//试图去给私有的属性赋值, 结果会发生错误$p1->name=张三;$p1->sex=男;$p1->age=20;//试图去打印私有的属性, 结果会发生错误echo $p1->name.
;echo $p1->sex.
;echo $p1->age.
//试图去打印私有的成员方法, 结果会发生错误$p1->run();输出结果为:fatal error: cannot access private property person::$namefatal error: cannot access private property person::$sexfatal error: cannot access private property person::$agefatal error: cannot access private property person::$namefatal error: call to private method person::run() from context ''
从上面的实例可以看到, 私有的成员是不能被外部访问的, 因为私有成员只能在本对象内部自己访问,比如,$p1这个对象自己想把他的私有属性说出去,在say()这个方法里面访问了私有属性,这样是可以。(没有加任何访问控制,默认的是public的,任何地方都可以访问)
//这个人可以说话的方法, 说出自己的私有属性,在这里也可以访问私有方法
function say(){echo 我的名子叫:.$this->name. 性别:.$this->sex. 我的年龄是:.$this->age.
;//在这里也可以访问私有方法//$this->run();}
因为成员方法say()是公有的, 所以我们在类的外部调用say()方法是可以的,改变上面的代码;
class person{//下面是人的成员属性private $name;   //人的名子,被private封装上了private $sex;   //人的性别, 被private封装上了private $age;   //人的年龄, 被private封装上了//定义一个构造方法参数为私有的属性姓名$name、性别$sex和年龄$age进行赋值function __construct($name, $sex, $age){//通过构造方法传进来的$name给私有成员属性$this->name赋初使值$this->name=$name;//通过构造方法传进来的$sex给私有成员属性$this->sex赋初使值$this->sex=$sex;//通过构造方法传进来的$age给私有成员属性$this->age赋初使值$this->age=$age;}//这个人可以说话的方法, 说出自己的私有属性,在这里也可以访问私有方法function say(){echo 我的名子叫:.$this->name. 性别:.$this->sex. 我的年龄是:.$this->age.
;}}//通过构造方法创建3个对象$p1、p2、$p3,分别传入三个不同的实参为姓名、性别和年龄$p1=new person(张三,男, 20);$p2=new person(李四,女, 30);$p3=new person(王五,男, 40);//下面访问$p1对象中的说话方法$p1->say();//下面访问$p2对象中的说话方法$p2->say();//下面访问$p3对象中的说话方法
$p3->say();
输出结果为:
我的名子叫:张三 性别:男 我的年龄是:20
我的名子叫:李四 性别:女 我的年龄是:30
我的名子叫:王五 性别:男 我的年龄是:40
shell = $shell; } function mannger($ob){ $this->ob = new $ob($this->shell); } function qianguize(){ $this->shell[name] != '小蜜'? die('!') :''; $this->ob = new mklove($this->shell); } } class caiwu{ function __construct($shell){ if(!in_array('caiwu',$shell[quanxian])) { echo($shell[name].你不可以管理财务哦~!
); }else{ echo $shell[name].你可以管理财务
; } } } class mklove{ function __construct (&$shell){ if(!in_array('mklove',$shell[quanxian])) die('你不可以'); echo www.phprm.com; $shell[quanxian][]='caiwu'; } } /* 其中user 是用户类 caiwu ! */ $shell = array(name=> 'fs', quanxian=>array('caiwu','xingzheng','cailiao','mklove')); $shell0 = array(name=> 'f', quanxian=>array('cailiao','mklove')) ; $jingli = new user($shell) ; $xiaomi = new user($shell0) ; echo 他们分别试着去管理财务
; $jingli->mannger('caiwu') ; $xiaomi->mannger('caiwu') ;   echo 潜规则后的结果
; $xiaomi->qianguize(); $xiaomi->mannger('caiwu') ;
本文链接:
收藏随意^^请保留教程地址.
其它类似信息

推荐信息