PHP面向对象概念


Posted in PHP onNovember 06, 2011

关键字和特殊变量

new,class,extends。这三个,大家都懂得。
::,范围解析操作符(也可称作 Paamayim Nekudotayim)或者更简单地说是一对冒号,可以用于访问静态成员、方法和常量。还可以用于覆盖类中的成员和方法。
parent和self。parent指的就是派生类在 extends 声明中所指的基类的名字。这样做可以避免在多个地方使用基类的名字。
$this 伪变量。$this指向当前的实例。$this却不一定是方法所属的对象。有时候类A内的代码会调用类B的一个静态方法。参考例子:http://www.php.net/manual/zh/language.oop5.basic.php
static关键字。如果声明类成员或方法为static,就可以不实例化类而直接访问。但是,除了静态方法,不能通过一个对象来访问其中的静态成员。在静态方法中,不使用$this。而使用self:: 。
final关键字。可以作用于类(class)和方法(function),会使类不能被继承,方法不能被覆盖。

属性

可以初始化,但初始化的值必须是常数。常量前面用const个关键字,常量的值必须是一个定值,不能是变量,类属性或其它操作(如函数调用)的结果。

构造函数和析构函数

这两个函数都不会暗中调用基类的响应函数,这跟java的构造器机制不一样。要达到这样的效果,必须显示执行。析构函数中不能抛出异常。

抽象类:声明为抽象的类方法不能包含具体实现,抽象类不能实例化。必须先被继承,再实例化其子类。而且子类的访问控制要和抽象类一样,或者更加宽松。抽象类至少包含一个抽象方法的。

接口

使用接口(interface),你可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。
定义的所有方法都必须是public,且方法为空
可以定义常量,但是没有属性
接口的实现(implements)必须实现所有方法,而且可以实现多个接口(注意,方法不能重名)。
接口可以被另外的接口继承 (extends)

PHP 相关文章推荐
将数组写入txt文件 var_export
Apr 21 PHP
php表单转换textarea换行符的方法
Sep 10 PHP
php页面缓存ob系列函数介绍
Oct 18 PHP
php.ini 配置文件的深入解析
Jun 17 PHP
php中数据库连接方式pdo和mysqli对比分析
Feb 25 PHP
Smarty中的注释和截断功能介绍
Apr 09 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
Jan 12 PHP
PHP7+Nginx的配置与安装教程详解
May 10 PHP
PHP表单数据写入MySQL数据库的代码
May 31 PHP
php加密解密字符串示例
Oct 13 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
php 记录进行累加并显示总时长为秒的结果
Nov 04 #PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 #PHP
php数组函数序列之array_search()- 按元素值返回键名
Nov 04 #PHP
php 伪造本地文件包含漏洞的代码
Nov 03 #PHP
有关php运算符的知识大全
Nov 03 #PHP
PHP读取txt文件的内容并赋值给数组的代码
Nov 03 #PHP
PHP支持多种格式图片上传(支持jpg、png、gif)
Nov 03 #PHP
You might like
php跨站攻击实例分析
2014/10/28 PHP
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
2019/10/20 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
Google Map Api和GOOGLE Search Api整合实现代码
2009/07/18 Javascript
jquery1.4.2 for Visual studio 2010 模板文件
2010/07/14 Javascript
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
jQuery阻止同类型事件小结
2013/04/19 Javascript
javascript实例--教你实现扑克牌洗牌功能
2014/05/15 Javascript
自己动手写的javascript前端等待控件
2015/10/30 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
2016/01/07 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
jquery实现数字输入框
2017/02/22 Javascript
详解闭包解决jQuery中AJAX的外部变量问题
2017/02/22 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
Vue框架中正确引入JS库的方法介绍
2017/07/30 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
Node.js使用Express.Router的方法
2017/11/14 Javascript
微信小程序实现天气预报功能
2018/07/18 Javascript
超好用的jQuery分页插件jpaginate用法示例【附源码下载】
2018/12/06 jQuery
小程序页面动态配置实现方法
2019/02/05 Javascript
python 统计代码行数简单实例
2017/05/04 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
浅谈python实现Google翻译PDF,解决换行的问题
2018/11/28 Python
对pandas处理json数据的方法详解
2019/02/08 Python
python+opencv实现摄像头调用的方法
2019/06/22 Python
python做反被爬保护的方法
2019/07/01 Python
Python内存管理实例分析
2019/07/10 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
Lentiamo丹麦:购买便宜的隐形眼镜
2021/01/13 全球购物
命名空间(namespace)和程序集(Assembly)有什么区别
2015/09/25 面试题
参观监狱警示教育心得体会
2016/01/15 职场文书
一文弄懂MySQL中redo log与binlog的区别
2022/02/15 MySQL
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android