加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php面向对象简单总结

发布时间:2022-07-29 14:31:25 所属栏目:PHP教程 来源:互联网
导读:基本知识 类:具有相同属性或方法的一类集合体。比如雪佛兰汽车是一个雪佛兰汽车类,奔驰汽车是一个奔驰汽车类,宝马汽车是一个宝马汽车类,而这三个类又是汽车大类的子类。 对象:类的一个具体实现,比如宝马Q5就是宝马汽车类的一个具体实现。对象地使用是放
  基本知识
  类:具有相同属性或方法的一类集合体。比如雪佛兰汽车是一个雪佛兰汽车类,奔驰汽车是一个奔驰汽车类,宝马汽车是一个宝马汽车类,而这三个类又是汽车大类的子类。
  对象:类的一个具体实现,比如宝马Q5就是宝马汽车类的一个具体实现。对象地使用是放在内存中的。一下让我们了解一下对象在内存中的分配。
 
  5.png
 
  使用面向对象,就是灵活地使用以上两个知识点。让我们来创建和使用类与对象
 
 
      *新建一个类
 
      */
 
      class newClass{        public $a;        public $b;        public function funA(){            echo "I am function A";
 
          }        public function funB(){            echo "I am function B";
 
          }
 
      }    /**
 
      *使用类创建对象
 
      */
 
      $opt=new newClass();
 
      $opt->a="opt";//将opt对象中的a属性赋值为opt
 
      $opt->funA();//打印出"I am function A"?>
 
 
  修饰符:在定义类与类中的属性时,我们可以使用如下三个修饰符,若不加,则默认为public
  public:权限最大
  protected:权限范围在其本身与其子类
  private:权限范围仅在其本身
  <font color="blue" size="4">构造函数与析构函数</font>:在我们对类实例化创建对象时,往往需要对对象进行初始化,这时,我们就需要在类中定义一个构造方法。当我们使用完对象时,就需要释放对象,以减少内存的使用,这时我们就需要使用析构方法。
  在php中我们使用__construct()方法与__destruct(),如下代码
 
 
      public $a;
 
      public $b;
 
      public function __construct($a,$b){
 
          $this->a=$a;
 
          $this->b=$b;
 
          echo "我是构造函数";
 
      }
 
      public function __destruct(){
 
          echo "我是析构函数";
 
      }
 
  }
 
  ?>
 
  封装性
 
  当我们开发一些重要的程序模块时,常常不希望别人能轻易访问这些程序模块的数据,因此需要对这些数据进行封装。这时我们要进行数据的访问控制,常常使用<font color="red">private</font>关键字来对这些属性与方法进行封装。
  如下:
 
 
      private $a;
 
      private $b;
 
      private function privateFun()
 
      {
 
          echo "我是封装的方法";
 
   {        
 
       private $a;        
 
      private $b="ww";        
 
      public function __set($oldValue,$newvalue){
 
          $this->$oldValue=$newvalue;
 
      }        
 
      public function __get($newvalue){            
 
          return $newvalue;
 
      }
 
  }
 
      $opt= new setClass();
 
      $opt->a="sss";//直接设置私有属性值
 
      echo $opt->b;//直接读取私有属性值
 
  ?>
 
  __isset()与__unset()的使用
  通过__isset()直接查看对象中私有属性是否存在
  通过__unset()直接删除对象中的私有属性
 
  class issetClass
 
  {
 
      private $a;
 
      private $b = 'www';
 
      function __isset($privateName)
 
      {
 
          if (isset($privateName)) {
 
              return 1;
 
          } else {
 
              return 0;
 
          }
 
      }
 
      function __unset($privateName)
 
      {
 
          echo "销毁" . $privateName;
 
      }
 
  }
 
  $opt = new issetClass();
 
  echo isset($opt->$b);
 
  var_dump(unset($opt->$b));?>
 
  继承性
 
  当我们编写多个类时,常常多个类具有相同的属性与方法,为了简化代码我们引入了继承的概念,子类可以继承父类的一些属性与方法,减少了冗余代码地编写。
 
  如何编写继承类
  我们使用关键字extends来编写子类
 
 
  <?php
 
      class parentClass{
 
      }    
 
      class childClass extends parentClass{
 
      }    
 
  ?>
 
  如上,childClass是parentClass的子类,php仅支持单继承,即一个子类只有一个父类,但父类可以有多个子类。
 
  重写父类方法
  当父类中的方法不能满足子类的使用时我们可以重写父类方法。但当我们又想在子类使用父类的方法时,我们可以使用如下语法:parent::方法名几个重要的关键字
 
  3.1 final
 
  final可以修饰类与方法,不能修饰成员属性;
  被final修饰的类不能继承,而用final修饰的方法在子类中不能被重写
 
  3.2 static
 
  static可以修饰成员属性与成员方法,不能修饰类;
  使用static修饰的成员与方法可以通过类直接使用,使用如下语法:类名::$属性名或方法名();
  在类中使用时通过如下语法:self::$属性名或方法名.

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读