隐藏对象字段和实现细节,仅通过对外接口,控制在程序中字段的读取和访问级别
,将抽象的行为和数据相结合,形成一个有机的整体。
2、字段的作用域
<?phpclasss Conputer{//public ?公共的,内外可以访问//private 私有的,类内可以访问//protected ?受保护的,类内和子类可以访问//类内指的是{}之间的部分}?>
3、instanceof关键字
确定一个对象是否是一个类的实例,一个类的子类的实例,或者实现了一个接口
4、拦截器
可以做成私有的,也可以设置静态方法,和普通字段设置一样,
5、常量;
<?phpclass Computer{const PI=3.14;}?>
6、静态字段和方法
1、总结:静态方法只能访问静态的,或者常量,用self关键字;
<?php//类名一般第一个字母大小class Computer{ ???const PI=3.1415926;//常量,在该类所有的实例化对象的生命周期内,值不变,约定俗成 常量名称大写 ???public static $_count=0; ?//静态类字段 ???private $_name=‘联想‘; //我是公共字段,内外可以访问,初始化不可以赋值变量,如 $_name=time();错误 ???private $_cpu; //我是私有字段,类内可以访问 ???protected $_zb; //我是受保护的字段,子类和类内可以访问 ???public function _run(){ ???????//类内访问字段: ?$this->字段名称 ??????$this->_cpu=‘I5‘; ???} ???//静态方法可以通过类—>方法名称访问,也可以通过 类名称::方法名称访问 ???//静态方法,不可以访问非静态字段,非静态方法,通过$this也无法访问,因为不在对象中 ???//静态方法,可以访问静态字段,静态方法, ???//静态方法内部,不可使用$this关键字 ???//静态只能访问静态 ,或者常量, ???public static function _run2(){ ??????echo self::$_count; ??????//self::_run(); 错误 ??????//self::_name; 错误 ??????self::PI; ???} ???//普通方法可以访问静态方法,因为,静态方法是为了对所有实例共享的 ???public function _run3(){ ???????self::_run2(); ???} ???//拦截器 ???//变量有用 ???private function __set($varname,$varvalue){ ???????$this->$varname=$varvalue; ???} ???private function __get($varname){ ???????return $this->$varname; ???}}//实例化一个类$computer=new Computer();$computer1=new Computer();Computer::_run2();echo ‘<br>‘;$computer->_run2();echo ‘<br>‘;//访问常量echo Computer::PI;echo ‘<br>‘;//echo Computer::$_count;//echo $computer->_count; ?无法访问//echo $computer->PI; ??无法访问//拦截器 设置变量值$computer->_name="dell";echo ‘<br>‘;echo $computer->_name;echo ‘<br>‘;$computer->_count="dell";echo ‘<br>‘;echo $computer->_count;echo ‘<br>‘;echo Computer::$_count;//instanceof 关键字 确定某个对象是否是一个类的实例。一个类的子类,或者是实现了某个接口,echo ($computer instanceof Computer);?>
PHP OOP的特性-封装
原文地址:http://blog.51cto.com/13468761/2107623