PHP 面向对象 精华
面向对象编程(Object Oriented Programming) 是一种计算机编程架构,
OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成,
类:具有相同属性和功能的对象的抽象就是类
对象的抽象是类, 类的具体化就是对象
对象:是系统中用来描述客观事物的一个实体, 是构成系统的一个基本单位。
面向对象编程三大特性:封装、继承、动态
封装:把对象的属性和方法结合成一个独立的相同单位, 并尽可能隐蔽对象内部细节。
继承:子类自动共享父类的数据结构和方法的机制,是类之间的一种关系
多态:把子类对象 赋值给父类的引用 再调用父类的方法 但是执行子类被覆盖父类的方法
访问类型:
public 公开的
protected 受保护的
private 私有的
魔术方法:在某一时刻自动调动的方法
__destruct 方法:析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行
__construct 方法: 每次创建对象时先调用此方法
__get 方法: 获取一个私有属性时 自动调用
__set 方法: 设置一个私有属性时 自动调用
__isset 方法: isset某一个私有属性时 自动调用
__unset 方法: unset某一个私有属性时 自动调用
__toString 方法: 可以让一个类决定它如何转换成一个字符串 在直接输出对象时 自动调用
__clone 方法: 在clone 一个对象时 自动调用 复制对象 是对象引用, 克隆对象, 是新建一个新的对象
__call 方法: 调用对象方法不存在时, 自动调用
__autoload 方法: 在加载类的时候(实例化类时候) 自动调用 写在其他文件
serialize 函数 序列化数据
unserialize 函数 反序列化数据
序列化的使用
第一种:对象在网络中传输的时候;
第二种:将对象写入文件或者是写数库时;
__sleep 方法:在对象序列化时 自动调用 可以将对象一部份序列化
__wakeup 方法:在对象反序列时 自动调用
final 只能用于定义类和方法
final 作用:类不能被继承, 方法不能重载
static 使用类访问或赋值, 对象不对直接访问
使用方法 类名::成员[属性,方法]
自身类 self::成员
用static 声明方法里面不能使用非静态成员
const 是一个类里面定义成员属性为常量的关键字
类名::成员属性
员能修饰属性
只有在声明的时候给初使值
抽象方法:没有方法体的方法。 没有大括号{}没有方法内容 用abstract 修饰
例如:abstract function sun();
抽象类:如果一个类里面有一个方法是抽象的;
注意:抽象类不可以被实例化,可以使用子类继承抽象类, 再实例化子类,子类需要重载所有抽象方法
作用:定义规范/抽象类相当于一个规范
接口:是一种特殊的抽象类, 接口里的同方法全部需要为抽象方法
接口里的抽象方法 前面不需要加abstract 关键字修饰
abstract class demo{ //抽象类
可以有成员属性
可以有普通方法
至少有一个抽象方法
}
interface demo{ //接口类
所有的成员属性必须是常量
所有的方法都是抽象的
所有的成员都必须是public
}
接口作用:也是一种规范
类实现接口使用implements 关键字, 而不是extends
接口继承接口还是使用extends
继承和接口可以一起使用 但要先继承后实现
实现多个接口使用逗号“,”隔开
多态:把子类对象 赋值给父类的引用 再调用父类的方法 但是执行子类被覆盖父类的方法
转载于:https://www.cnblogs.com/ybbqg/archive/2012/06/01/2530498.html
PHP 面向对象 精华相关推荐
- java中什么叫懒加载_java懒加载的原理
聊一下以下名词.概念或用法:lazy.lazy="extra".inverse.fetch.fetch="join".fetch=" subselec ...
- 《程序员面试宝典》精华 面向对象部分
<程序员面试宝典>精华 面向对象部分 正所谓取其精华,去其糟粕.本文谨记录下<程序员面试宝典>一些关键的知识点.易错点,对于一些虽然重要但书中没有解释清楚的地方不做记录.书里是 ...
- 类与面向对象的精华:继承【C++继承】
引入继承 为什么需要继承? 简单举例 继承 定义 定性 is-a 而不是 has-a is-a has-a 语法 继承方式 继承方式影响了什么? 公有继承 public 私有继承 private 保护 ...
- 面向对象思想精华总结
一.三大特性 封装 继承 多态 二.类图 泛化关系 (Generalization) 实现关系 (Realization) 聚合关系 (Aggregation) 组合关系 (Composition) ...
- Java面向对象思想精华(二)
Java面向对象核心思想 一.对象创建的内存模型 (一).栈.堆.方法区存储的内容 二.子类与继承 1.作用 2.通过 extends 关键字来实现继承. 3.子类和父类的结构 4.继承的注意事项 5 ...
- C++重要知识点总结(简答题,期末考试 面向对象难点 类和对象)精华在后面
期末考试时总结的一些知识点,希望能对大家有帮助. 一.C++语言基础 1,程序由语句组成,语句由基本要素(单词)组成 2,数组:具有相同类型数据的有序集合 3,C++语言没有提供字符串类型,字符串变量 ...
- Java面向对象知识点精华
- 《JavaScript面向对象精要》读书笔记
JavaScript(ES5)的面向对象精要 标签: JavaScript 面向对象 读书笔记 2016年1月16日-17日两天看完了<JavaScript面向对象精要>(参加异步社区的活 ...
- java基础知识点_「Java面试题/知识点精华集」20000+字的Java基础知识篇(2020最新版) !
" 本文已经收录进我的 79K Star 的 Java 开源项目 JavaGuide:https://github.com/Snailclimb/JavaGuide (「Java学习+面试指 ...
- IT项目的面向对象分析设计、开发及管理
前 言 21世纪,信息化建设在各个领域蓬勃发展,包括企业资源计划(Enterprise Resources Planning,简称ERP)系统.面向对象的项目分析设计.开发及管理,是指企业围绕软件项目 ...
最新文章
- 18常用web开发 浮动层、提示层代码下载
- lua搭建ui_构建类魔兽UI插件的lua安全沙箱
- 试验设计与matlab数据分析 下载,试验设计与MATLAB数据分析(附光盘)
- Codeforces Round #242 (Div. 2)C(找规律,异或运算)
- WORD批量更改所有图片大小
- 中控考勤机二次开发 java_SDK二次开发,读取中控考勤机打卡记录测试。
- 【PCAN医疗应用系列】CAN总线技术在实现实时荧光定量基因扩展(PCR)仪控制系统上的应用(2)
- python作业——输入一个月份单词输出对应月份缩写
- golang 隐藏启动其他程序,包含cmd窗口(黑窗口)程序,GUI程序隐藏
- sqlite只能用于android系统,android SQLite
- 阿里物联网iot 网关配置 gateway 与子设备
- 数学中学生测试软件,欧拉初中数学软件
- 使用Java实现建造者模式
- i.MX6ULL驱动开发 | 12 - 基于 Linux I2C 驱动读取AP3216C传感器
- 客快物流大数据项目(九十九):Clickhouse中update/delete的使用
- POI读写超大数据量Excel,解决超过几万行而导致内存溢出的问题(附源码)
- 新手利用QQ群排名技术长期引流方法分享
- 轻松同时使用或切换多个搜索引擎
- 当机器具备跨模态感知能力后,会有智商吗?| MixLab人工智能
- VTK笔记——如何显示三维坐标系
热门文章
- Git学习笔记 - 钢钢更新
- spring in action 4 第6章 视图分发
- [改善Java代码]使用CyclicBarrier让多线程齐步走
- kernel---1
- sublime Text2 2.0.2 build 2221 64位 破解(已测试)
- 备机大地院系项目dataguard archived_log及standby_log
- java 通过System.getProperties()获取系统参数
- 路由重分布 rip,eigrp,和ospf
- 教你如何做人的小故事
- 简单的HTML5 Web Storage留言册