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 相关文章推荐
php 数组排序 array_multisort与uasort的区别
Mar 24 PHP
PHP中将网页导出为Word文档的代码
May 25 PHP
php中flush()、ob_flush()、ob_end_flush()的区别介绍
Feb 17 PHP
PHP实现的简单异常处理类示例
May 04 PHP
phpcms配置列表页以及获得文章发布时间
Jul 04 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
Dec 06 PHP
PHP设计模式之简单工厂和工厂模式实例分析
Mar 25 PHP
在laravel框架中实现封装公共方法全局调用
Oct 14 PHP
在laravel中实现将查询的对象转换为多维数组的函数
Oct 21 PHP
Laravel框架实现抢红包功能示例
Oct 31 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 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中动态调用函数的方法
2015/03/16 PHP
PHP面试题之文件目录操作
2015/10/15 PHP
php批量删除操作代码分享
2017/02/26 PHP
ThinkPHP5框架中使用JWT的方法示例
2020/06/03 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/01/13 Javascript
javascript this用法小结
2008/12/19 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
2017/06/26 Javascript
React/Redux应用使用Async/Await的方法
2017/11/16 Javascript
JS实现简易换图时钟功能分析
2018/01/04 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
关于element的表单组件整理笔记
2021/02/05 Javascript
python中yaml配置文件模块的使用详解
2018/04/27 Python
python生成带有表格的图片实例
2019/02/03 Python
详解Python:面向对象编程
2019/04/10 Python
pycharm新建一个python工程步骤
2019/07/16 Python
django rest framework使用django-filter用法
2020/07/15 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
大学毕业后的十年规划
2014/01/07 职场文书
七夕活动策划方案
2014/08/16 职场文书
公司授权委托书样本
2014/09/15 职场文书
Python实战之疫苗研发情况可视化
2021/05/18 Python
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript