zoukankan      html  css  js  c++  java
  • php逐步了解

    1. 定义类和实例化对象

    使用关键字 class 定义类 使用new 实例化对象

     

    2.类成员的添加和访问

    类成员 有属性   方法   常量

    添加属性 需要使用范围修饰符 public  protected   private

    访问属性的时候变量名不带$符。

    作用范围 类外 类内  子类 public都可以访问

    Protected 在类内和子类内访问

    Private只能在自己的类内访问

    添加方法 如果方法前不带修饰符 则默认是public

    添加常量 使用关键字 const 常量名 常量名不带$

    访问常量  类名::常量名   :: 范围解析符

     

    3.类内部对象$this 和内存原理

    $this 他是一个对象 指向实例化的那个对象

     

    当我们new实例化的时候,系统会给这个对象分配一个内存空间,内存空间分一个栈内存,一个堆内存,将变量存在栈里,将代码块存在堆里,然后将堆的内存地址指向栈中的变量,如果再给这个栈中的变量赋值引用数据类型,那么这个内存地址就会被更改。

     

    4.

     变量a和变量p都指向同一个引用地址,二者是同一个对象,一变都变。思考:如果让二者是两个不同的对象,改变a但是p不跟着改变。需要使用对象克隆。clone

    通过关键字clone 来复制一个一模一样的对象,但是二者不是同一个对象

     

    5.构造函数和析构函数

    构造函数:我们在申明类的时候就自然存在,当用new实例的时候,这个函数会自动调用

    我们也可以人为去写些自己的东西

     

    析构函数:用于销毁new实例化的内存,如果不销毁内存,系统性能会大大降低。

    New实例以后,这个函数也会自动调用,销毁原则是先入后出

     

    6.静态成员

    静态成员的添加

    在成员属性 成员方法 前面加上static关键字就可以了

    静态成员的访问

    第一中在类的内部方法中访问

     

    在类的外部访问

     

    7.面向对象的三大特征

    封装:对外只告诉你如何操作,内部结构不需要你知道。

    对外只提供可操作的接口(方法),对内的数据操作不可见

     

    继承

    子类可以继承父类的属性和方法,但是有限继承,public protected private 修饰的属性可以继承 protected public 修饰的方法 子类可以继承  父类的常量也可以继承。

     

    多态:php没有多态,因为php是弱类型语言,不会对变量提前进行类型申明,但是有重载

    重载 父类和子类 方法相同 子类会覆盖父类的方法

    8.关键字parent

    在继承中的子类,有这个parent。访问父类的常量,父类的方法,父类的静态属性,属性成员不能访问。

     

    9.final关键字  不可重载的

    如果写在类的前面 表明这个类不能被继承

     

    如果写在类的方法前面和属性前面 说明这个方法和属性也不能被重载

     

    10 abstract 代表抽象类

    如果项目经理需要对所有的子类进行规范,就是说有些成员必须有,且必须使用那些名字。

    就需要使用抽象类这个概念。

    1.抽象类不能被实例化

    2.如果一个类里面有一个方法被申明为抽象类了,这个类就得申明为抽象类

    3.只要这个方法被声明为抽象方法了,就不能写函数体。将函数后面{}去掉,函数体由子类去实现

    4.在继承一个抽象类的时候,子类必须定义父类中的所有抽象方法。不是抽象方法子类可以不去定义

     

    11.接口interface

    接口的用途和抽象类差不多,都是为了写一些规范

    1. 使用interface关键字定义接口,接口在方法都是空的没有函数体。
    2. 接口中所有方法都是public
    3. 使用implements 这个操作符

    4.一个类可以实现多个接口,接口和接口之间只要,隔开

    5.接口和接口之间方法尽量不要重名,如果重名了,那么参数等要保持一致

     

     

    抽象类和接口的区别

    1. 接口使用implements 而抽象类使用extends 实现
    2. 接口中只能申明公有的方法  抽象类属性  常量 方法 都可以申明
    3. 接口没有构造函数 抽象类有
    4. 接口可以实现多个接口 但是抽象类只能继承一个
  • 相关阅读:
    Flink实时数仓(数据可视化)
    Hive调优
    面试(涉及技术一)
    启动Flink的yarnsession模式出错
    面试(涉及技术二)
    Filnk实时数仓(DWS层)
    Filnk实时数仓(Clickhouse)
    Filnk实时数仓(Prometheus监控)
    Filnk实时数仓(DWM层)
    Centos7下杀毒软件clamav的安装和使用
  • 原文地址:https://www.cnblogs.com/txf-123/p/10678210.html
Copyright © 2011-2022 走看看