面向对象

纵然是瞬间 提交于 2020-03-11 06:33:18

js面向对象

  类:具有相同的特征的一些对象的集合。

  对象:具体到某一个事物了都可以叫作对象。

 

  类 通过function 定义类 所以在js里类的本质是函数;类的标志  首字母大写   函数内部使用this  调用函数是使用new关键字。

  类和函数天生有两个属性是prototype和__proto__;Prototype又是一个对象天生有一个constructor的属性,属性值是函数和类本身。

  普通对象天生有一个__proto__的属性,这个属性是对象,指向他的父类。

 

php面向对象 

1、类的创建   class 创建类

   class Person{

  }

2、对象的创建 使用new 关键字

   class Person{


  }

  $p1=new Person;

3、成员的添加

  添加成员需要 三个修饰符:

    Public: 公开的   定义公共的属性和方法,类的外部,类的内部,子类都可以使用

    protected: 受保护的 定义受保护的属性和方法  只能在类的内部和子类里使用

    Private :私有的 定义私有的属性和方法  只能在自身的类里使用

    方法成员如果前面不加修饰符 默认是public

4成员调用使用->符号

  $p1=new Person;

  $p1->fn( );

  使用成员属性和方法的时候 属性和方法前面不带$符

  $p1=new Person;

  $p1->fn( );

  echo $p1->name;

5 特殊对象$this 指向实例化的对象,如果类的方法里想使用类的其他属性和方法得需要使用$this对象

  public $name="lisi";

  public function fn(){
    echo $this->name;

   }

6.构造方法function __construct()  构造函数在new实例化的时候系统会自动调用

   public $name;

  function __construct($name){

    $this->name=$name;

  }

  piblic function fn(){

    echo $this->name;

  }

7、析构方法

  我们每次new实例化,系统就会给这个对象分配一个内存空间,如果不销毁,系统压力会很大,系统有一个析构方法 __destruct 对象实例化之后系统会自动调用。内存销毁的原则是先进后销。

8.成员赋值

  $p1->name="456";

  echo $p1->name;

9.php中的继承使用关键字 extends

  class Person{
    public $name="lisi"; 

    public function fn(){
      echo 11111;

    }

  }

  class Child extends Person{

  }

  $c=new Child;

  var_dump($c);

  $c->fn();

10、类中常量 使用const关键字定义常量,常量在定义和使用的时候不能带$符。

使用的时候不能用$this 使用范围修饰符  :: 前面还是这个类名或self

  const ad="xiaoxu";

  public $name="lisi";

  public function fn(){
    echo self::ad;

  }

如果子类向访问父类中的常量 使用parent::常量名

 

11、静态变量  在变量前加上关键字 static 静态属性 不能使用->访问了,使用类名::$变量名;

  class Person{
    public static $name="123";

  }

  $p=new Person;

  echo Person::$name;

12、重载 覆盖

  子类继承父类的方法时,如果子类有和父类同名的方法,从父类那继承的方法就会被覆盖掉,这个就叫重载。

  如果父类的方法前面加上final 则子类无法重载父类的方法,就会报错。

13、调用父类构造方法

  PHP不会在子类的构造方法中自动的调用父类的构造方法,要执行父类的构造方法,需要在子类的构造方法中调用parent::__construct().

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!