zoukankan      html  css  js  c++  java
  • PHP面向对象摘要

    一、面向对象的三种特性,分别是封装性,继承性和多态性。

    1、封装性:封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体的实现细节,这就是封装思想。

    2、继承性:继承性主要是描述类与类之间的关系,通过继承,可以在无须重新编写原有类的情况下,对原有类的功能进行拓展。

    3、多态性:指的是同一操作作用于不同的对象,会产生不同的执行结果。

    二、类与对象

    简而言之,类是抽象的,而对象是具体的;类是一个物种的普遍存在的属性,而对象是细分出来,具体到某个实体对象。

    在面向对象中,最核心的就是对象,为了创建对象,首先要定义一个类。

    1、类的定义

      class 类名{
      成员属性;

      成员方法;  

    }

    2、对象的创建,也叫做实例化。

    $对象名 = new 类名([参数1][参数2][...]);

    三、类的封装

    所谓类的封装是指在定义一个类时。将类中的属性私有化,即使用private关键字来修饰,私有化的属性只能在它所在类中被访问。PHP提供两种方法允许外界的访问。

    1、通过getXXX()和setXXX()方法访问私有属性

    getXXX获取属性值,setXXX设置属性值。

    class Person{

    private $name;

    public function getName()

    {
      return $this->name;

    }

    public function setName($value)

    {

      $this->name = $value;

    }

    2、通过 __get()和 _ _set()方法访问私有属性

    这两个方法是PHP自动调用的,功能和上面的一样。

    3、public、protected和private修饰符

    public:公有修饰符,所有成员都可以访问。

    protected:保护成员修饰符,被修饰的不能被该类的修饰成员访问,但是能被子类访问和读写。

    private:私有修饰符,对于同一个类里面的成员是可见的,访问无限制,但是不允许外部的代码访问。

    4、this

    它代表对象本身,当前对象。

    $this->属性名;

    四、构造方法和析构方法

    每一个类中都有一个构造方法,他会在类实例化时进行自动调用,对类中的成员进行初始化。

    与之对应的是析构方法,它在对象被销毁之前自动调用,用于完成清理工作。

    1、构造方法

      修饰符 function __construct(参数列表){

      //初始化

    }

    2、析构方法

    functions __destruct(){

      //清理操作

    }

    五、类常量和静态成员

    1、类常量

    const PI = 3.1415926;

    使用const关键字声明常量,常量名不需要加$符号,并且在声明的同时对他进行初始化。常量能够被类的所有对象共享。

    2、静态成员

    数据被类的所有对象共享,不属于任何对象,只属于类。

    访问修饰符 static 变量名;

    访问修饰符 static 方法名(){}

    六、继承

    1、继承的概念

      在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。例如猫和狗都是动物。

      class 子类名 extends 父类名{

      //类体

      }

    2、重写父方法

      在继承关系中,子类会自动继承父类中定义的方法,但有时子类中需要对继承的方法进行一些修改,即对父类的方法进行重写。

    3、final关键字

      PHP中的类被final关键字修饰后,该类将不能被继承,也就是不能够派生子类。

      当一个类方法被final关键字修饰后,这个类的子类就不能重写该方法。

    七、抽象类和接口

      1、抽象类

      在定义一个类时,其中所需要的某些方法暂时不能完全定义出来,而是让其继承的类来实现,此时就用到抽象类。

      abstract class 类名{

      //类成员

      }

      抽象方法只有方法名没有方法体。

      abstract function 方法名();

      2、接口

      如果一个类中的所有方法都是抽象的,则可以将这个类用另外一种方法来定义,即接口。在定义接口时,需用关键字 interface。定义接口与定义一个标准的类类似,但其中所有定义的方法都是空的。

      interface 类名{

      public function a();

      public function b();

      }

    八、多态

       在设计一个方法时,通常希望该方法具备一定的通用性。例如实现一个动物叫的方法,由于每个动物的叫声是不同的,因此可以在方法中接收不同的动物类型参数,当传入矛盾就发出猫叫,传入狗就狗叫。

  • 相关阅读:
    Redis持久化——AOF日志
    设计原则:接口隔离原则(ISP)
    设计原则:里式替换原则(LSP)
    新入职一家公司如何快速进入工作状态
    又是一年毕业季——如何入坑程序员
    设计原则:开闭原则(OCP)
    设计原则:单一职责(SRP)原则
    Redis持久化——内存快照(RDB)
    工作中应该如何管理自己的情绪?
    如何成为一个精力充沛的程序员——掌控
  • 原文地址:https://www.cnblogs.com/pangxiaox/p/5468133.html
Copyright © 2011-2022 走看看