php面向对象的特性:OOP的封装

字段的作用域:

  1.public 公共的(类外可以访问)

  2.private 私有的(只能类内访问)

  3.protected 受保护的(类内和子类可以访问,类外无法访问)

 1 /*通过公共的方法来访问私有字段*/
 2 class Computer{
 3     //类的私有字段(成员)
 4     private $_name="联想";
 5     private $_model = "z470";
 6     
 7     //通过公共方法来访问私有字段
 8     public function _run(){    
 9         echo $this->_name;
10     }
11 }
12 
13 $compter = new Computer();
14 $compter->_run();  //输出值:联想

  如果有10个字段的话怎么办?

 

 1 class Computer{
 2     //类的私有字段(成员)
 3     private $_name;
 4     private $_model;
 5     private $_price;
 6     
 7     //给所有字段赋值
 8     function __set($_key,$_value){
 9         $this->$_key = $_value;        
10     }
11     
12     //所有字段的取值在这里运行
13     function __get($_value){
14         return $this->$_value;
15     }
16     
17     
18 }
19 
20 $compter = new Computer();
21 $compter->_name = "联想";
22 $compter->_model = "z470";
23 $compter->_price = "5000";
24 
25 echo $compter->_name;    //输出值:联想
26 echo $compter->_model;     //输出值:z470
27 echo $compter->_price;     //输出值:5000

 

方法私有:类中的有些方法并不需要对外公开,只是里面运作的一部分,这时候应该将方法也封装起来。

 1 class Computer{
 2     
 3     //类的成员
 4     private $_name;
 5     private $_model;
 6     
 7     //私有方法
 8     private function getEcho(){
 9         echo '我是私有化的方法';
10     }
11     
12     //公共方法一般是对外的入口
13     public function run(){
14         $this->getEcho();
15     }    
16     
17 }
18 
19 $com = new Computer();
20 $com->run();        //输出值:我是私有化的方法

 

 

 

posted on 2013-08-27 14:09  沉淀思潮  阅读(198)  评论(0编辑  收藏  举报

导航