PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象

2019-05-03 02:00:35丽君

Demo6.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  class Computer {
    private $_name;
    private $_model;
    private $_cpu;
    //__set 和 __get 方法私有了,还是可以执行,是因为
    //因为目前程序的指针已经在类内了。而类内可以执行封装的方法
    //类内执行私有方法,不会出现任何错误。
    //它只需要间接的拦截就可以了。拦截是在内类执行的。
    //说白了,__set() 和 __get() 是 PHP 内置的方法,具有一定的特殊性
    private function __set($_key, $_value) {
      $this->$_key = $_value;
    }
    private function __get($_key) {
      return $this->$_key;
    }
  }
  $computer = new Computer ();
  $computer->_name = '联想';
  $computer->_cpu = '四核';
  $computer->_model = 'i7';
  echo $computer->_name;
  echo $computer->_cpu;
  echo $computer->_model;
?>

Demo7.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  class Computer {
    const NAME = 'DELL';
  }
  //常量的输出方法 类::常量
  echo Computer::NAME;    //DELL
?>

Demo8.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  class Computer {
    public $_count = 0;
    public function _add(){
      $this -> _count++;  //$_count = $_count+1 $_count++
    }
  }
  //做一个累计的效果
  $computer1 = new Computer();
  $computer1 ->_add();
  $computer1 ->_add();
  $computer1 ->_add();
  echo $computer1 -> _count;
  echo '<br />';
  $computer2 = new Computer();
  $computer2 ->_add();
  $computer2 ->_add();
  $computer2 ->_add();
  echo $computer2 -> _count;
?>

Demo9.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  class Computer {
    public static $_count = 0;
    public function _add(){
      //如果是静态成员字段,那么就应该用 self 来调用,而不是 $this
      self::$_count++;
    }
  }
  //做一个累计的效果
  $computer1 = new Computer();
  $computer1 ->_add();
  echo Computer::$_count;
  $computer1 ->_add();
  echo Computer::$_count;
  $computer1 ->_add();
  echo Computer::$_count;
  echo '<br />';
  $computer2 = new Computer();
  $computer2 ->_add();
  echo Computer::$_count;
  $computer2 ->_add();
  echo Computer::$_count;
  $computer2 ->_add();
  echo Computer::$_count;
?>

Demo10.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  class Computer {
    public static $_count = 0;
    public static function _add(){
      self::$_count++;
    }
  }
  Computer::_add();
  Computer::_add();
  Computer::_add();
  echo Computer::$_count;
?>

Demo11.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  class Computer {
  }
  $computer = new Computer();
  echo $computer instanceof Computer;
?>

								 
			 
相关文章 大家在看