PHP OOP的特性-封裝
阿新 • • 發佈:2018-04-25
OOP 封裝 1、什麽是封裝?
隱藏對象字段和實現細節,僅通過對外接口,控制在程序中字段的讀取和訪問級別
,將抽象的行為和數據相結合,形成一個有機的整體。
2、字段的作用域
<?php
classs Conputer{
//public 公共的,內外可以訪問
//private 私有的,類內可以訪問
//protected 受保護的,類內和子類可以訪問
//類內指的是{}之間的部分
}
?>
3、instanceof關鍵字
確定一個對象是否是一個類的實例,一個類的子類的實例,或者實現了一個接口
4、攔截器
可以做成私有的,也可以設置靜態方法,和普通字段設置一樣,
5、常量;
<?php class 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的特性-封裝