一、定义类 使用关键字class定义

二、实例化对象  使用关键字new实例化对象

三、类成员的添加和访问

(1)类成员:属性、方法、常量

(2)添加成员需要使用修饰符  public、protected、private

(3)修饰符的作用范围

  public 类内类外子类

  protected 类内 子类

  private 类内

(4)添加方法:如果方法前不带修饰符,默认带public;

(5)添加常量:const 常量名;

  访问常量:类名::常量名;

  ::范围解析操作符

四、类内部对象$this和内存原理

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

五、如果$a和$p指向同一个内存地址,它们是同一个对象,则改变一个则两个都会变

  需要用克隆解决这个问题 关键字clone;通过clone来复制一个一模一样的对象,这样它们就不是同一个对象了;

六、构造函数和析构函数

(1)构造函数:我们在声明类的时候就存在这个函数,用new实例化时,函数自动调用。

public function __construct(){};

(2)析构函数:用于释放new实例化的内存空间,如果不销毁,会增加系统性能负荷;

new实例化时,系统会自动调用;销毁原则:先人后出。

七、静态成员

静态成员的添加:在成员属性或方法前加关键字 static

静态成员的访问: 内部使用:self::$变量;或   类名::$变量;

        外部使用: 类名::$变量;

八、面向对象的三大特征

(1)封装:对外只提供可操作的方法,不会告诉你内部结构

(2)继承 子类可以继承父类的属性和方法,但是是有限继承,

  public、protected、private三个修饰的属性都可以继承,public、protected两个

  修饰的方法可以继承,父类的常量可以继承

(3)多态:php没有多态

  重载:当子类跟父类有个相同的方法时,子类的方法会覆盖父类的方法

九、关键字:parent

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

访问方式: parent::$静态属性、fn()、常量

十、final  不可重载的

(1)写在类前面 不许类被继承

(2)写在方法和属性前 子类不能重载父类的方法

十一、抽象类 abstract

(1)抽象类不能被实例化

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

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

(4)在继承一个抽象类的时候,子类必须定义父类

PHP整理--PHP面向对象的更多相关文章

  1. 《JavaScript语言入门教程》记录整理:面向对象

    目录 面向对象编程 实例对象与 new 命令 this关键字 对象的继承 Object对象的方法 严格模式(strict mode) 本系列基于阮一峰老师的<JavaScrip语言入门教程> ...

  2. php整理(三): 面向对象

    PHP学习(三)----面向对象   首先,还是建立一个好的理解模型: 1.什么是面向对象? 面向对象分为两个部分,那就是:什么是对象和什么是面向? 什么是对象: 对象的出现就是为了用代码更好的绘制我 ...

  3. python基础整理4——面向对象装饰器惰性器及高级模块

    面向对象编程 面向过程:根据业务逻辑从上到下写代码 面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程 面向对象编程(Object Oriented Pro ...

  4. 尚学堂Java面试题整理

    博客分类: 经典分享   1. super()与this()的差别? - 6 -  2. 作用域public,protected,private,以及不写时的差别? - 6 -  3. 编程输出例如以 ...

  5. (转) 面向对象设计原则(二):开放-封闭原则(OCP)

    原文:https://blog.csdn.net/tjiyu/article/details/57079927 面向对象设计原则(二):开放-封闭原则(OCP) 开放-封闭原则(Open-closed ...

  6. Python中:self和__init__的含义 + 为何要有self和__init__

    Python中:self和__init__的含义 + 为何要有self和__init__ 背景 回复: 我写的一些Python教程,需要的可以看看 中SongShouJiong的提问: Python中 ...

  7. php实现MySQL读写分离

    MySQL读写分离有好几种方式 MySQL中间件 MySQL驱动层 代码控制 关于 中间件 和 驱动层的方式这里不做深究  暂且简单介绍下 如何通过PHP代码来控制MySQL读写分离 我们都知道 &q ...

  8. 例子:js超级玛丽小游戏

    韩顺平_轻松搞定网页设计(html+css+javascript)_第34讲_js超级玛丽小游戏_学习笔记_源代码图解_PPT文档整理 采用面向对象思想设计超级马里奥游戏人物(示意图) 怎么用通过按键 ...

  9. JAVA面试题二

    JAVA 综合面试题 2007-08-12 目录 Java面试题整理 9 Java面向对象 9 1. super()与this()的区别? 9 2. 作用域public,protected,priva ...

随机推荐

  1. for update 与where current of的问题

    在刚学oracle时一直不明白for update 的作用,今天考试又遇到郁闷半天,所以加以整理. 一: 1>首先for update是对表的行进行锁定.锁定就好比我们学java Thread那 ...

  2. sqlserver2016新功能

    SQL Server 2016中的新功能(数据库引擎) 2017年1月13日  23分钟阅读时长 作者 本人建了个领优惠卷购物群,平时网购可以省点钱.有需要的加群:511169656交流,谢谢 本主题 ...

  3. 部署redis4.0-cluster

    一.部署环境 .关闭iptables(firewalld)或添加放行规则 .关闭selinux3.部署redis实例,参考:https://www.cnblogs.com/panwenbin-logs ...

  4. 微信小程序-滚动Tab选项卡

    前言:今天呢 给大家详细讲解一下滚动Tab选项卡:左右可滑动切换的效果,希望对大家做项目时候有用! 以前也遇到过这个,但是没有做记录.转载来源于:https://www.jianshu.com/p/9 ...

  5. Postman A请求的返回值作为B请求的入参( 拢共分三步)

  6. 通过阿里云ECS服务器公网ip访问tomcat,nginx

    一.概述 1.操作系统:centos7 2.安装nginx方法:https://www.cnblogs.com/boonya/p/7907999.html,亲测可用. 3.tomcat版本:apach ...

  7. 百度学术导入endnote出现choose an import filter解决

    一般情况,我们在百度学术搜索一篇文章, 点击引用,出来一个 点击EndNote,将下载好的.enw双击出现 百度了一些,可以不使用百度学术,用pubmed,点击citation. 发现一个解决办法.在 ...

  8. Linux网络编程学习(十一) ----- 五种I/O模式(第六章)

    1.五种I/O模式是哪几个? 阻塞I/O,非阻塞I/O,I/O多路复用,信号驱动I/O(SIGIO),异步I/O 一般来讲程序进行输入操作有两个步骤,一是等待有数据可读,二是将数据从系统内核中拷贝到程 ...

  9. ECharts折线图多个折线每次只显示一条

    echart 两条折线图如何默认只显示一条,另一条隐藏呢 只需要在legend后加上, selectedMode: 'single', selectedMode [ default: true ] 图 ...

  10. Chen qiaoqiao Studio

    Welcome here! If you need any help, please contact us. Contact info Email: lovey_kids@163.com