• js面向对象和PHP面相对象


    Js面向对象:

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

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

        类 :通过function 定义类 所以在js里类的本质是函数,

      类的标志  首字母大写   函数内部使用this  调用函数是使用new关键字

        1.类和函数天生有两个属性是prototype和__proto__

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

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

      引用关系: 

        function A(){}

        A.prototype.fn=function(){}

        A.prototype=function(){

          fn:function(){}

        }

        这两者有什么区别?

        前者不会改变原有的引用关系,而后者会改变原有的引用关系。

      拷贝:浅拷贝,深拷贝

    Php面向对象

      1.创建类:class Person{}

      

      2.创建对象:$p=new Person;

      

      3.成员的添加

        添加成员需要 三个修饰符

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

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

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

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

      4.成员调用使用->符号

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

        

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

      

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

        

      7.析构方法

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

        

        先销毁$p1的

      8.成员赋值

        

      9.继承  extends

        

      10.常量

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

       使用常量的时候不能用$this 使用范围修饰符  :: 前面还是这个类名或self     (self只限在类内代替类名,类外还是只能用类名)

       子类中使用常量的话使用 parent

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

      12.重载 覆盖

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

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

      

  • 相关阅读:
    125-PHP类__set()魔术方法
    124-PHP类析构函数
    123-PHP类构造函数
    122-PHP类成员函数(三)
    121-PHP类成员函数(二)
    120-PHP调用成员方法并将不同类的对象做为参数
    119-PHP调用private成员的方法
    118-PHP调用带参数的成员方法
    117-PHP在外部无法调用private类成员函数
    HDU-2045 不容易系列之(3)—— LELE的RPG难题 找规律&递推
  • 原文地址:https://www.cnblogs.com/Shinigami/p/10679919.html
Copyright © 2020-2023  润新知