66-面向对象开篇

原创 2016年04月27日 13:23:20

66-面向对象开篇

面向对象是一种编程范式,它将对象作为程序的基本单元,将程序和数据封装起来, 以此来提高程序的重用性、灵活性和可扩展性。

目前很多语言都支持面向对象编程,既然对象对象是一种范式,其实这就和具体的编程语言没有直接关系, 只不过很多语言将这个范式作为语言的基本元素,使用C语言也能够进行面向对象编程。

面向对象的程序设计中包含:

  1. 类。类是具体事物的抽象。通常类定义了事物的属性和所能完成的工作。有一点需要注意, 并不是所有的面向对象编程语言的类都具有class这个明确的实体。例如Javascript就不是基于类的。 Javascript中的类(Function)也具有类定义的特性。这也印证了面向对象只是一种编程范式。
  2. 对象。对象是类的实例。对象是具体的。
  3. 方法。方法是类定义对象可以做的事情。
  4. 继承性。继承是类的具体化,子类是比具备更多特性和行为的类。面向对象是对现实世界的一个抽象。 在很多时候的关系并不一定是继承关系。能在一定程序上实现代码的重用。
  5. 封装性、抽象性。封装性能实现的复杂性隐藏,减少出错的可能。

从我们接触PHP开始,我们最先遇到的是函数:数组操作函数,字符串操作函数,文件操作函数等等。 这些函数是我们使用PHP的基础,也是PHP自出生就支持的面向过程编程。面向过程将一个个功能封装, 以一种模块化的思想解决问题。

面向对象听起来很美,但是现实中的编程语言中很少有纯粹的面向对象的语言, 处于性能或者程序员的开发习惯,通常的编程语言都同时支持两种变编程方式。

PHP就是如此,从PHP4起开始支持面向对象编程。但PHP4的面向对象支持不太完善。 从PHP5起,PHP引入了新的对象模型(Object Model),增加了许多新特性,包括访问控制、 抽象类和final类、类方法、魔术方法、接口、对象克隆和类型提示等。 并且在近期发布的PHP5.3版本中,针对面向对象编程增加了命名空间、延迟静态绑定(Late Static Binding) 以及增加了两个魔术方法__callStatic()和__invoke()。

PHP中对象是按引用传递的,即对象进行赋值和操作的时候是按引用(reference)传递的,而不是整个对象的拷贝。

这一章我们从面向对象讲起,会说到PHP中的类,包括类的定义和实现、接口、抽象类以及与类相关的访问控制、 对象和命名空间等。除此之外也会从其存储的内部结构,类的单继承的实现,接口的多继承, 以及魔法方法的实现等细微处着手分析类相关的方方面面。

Android系统-开篇

一、Android概述Android系统非常庞大,底层是采用Linux作为基底,上层采用带有虚拟机的Java层,通过通过JNI技术,将上下打通,融为一体。下图是Google提供的一张经典的4层架构图,...
  • Gityuan
  • Gityuan
  • 2016年03月06日 21:07
  • 1527

小白张的博客开篇

2016年转眼之间已经过去一半,而我毕业也已经整整一年了。在过去一年里,个人成长可以说是非常缓慢的,JavaEE开发算是刚刚入门,其实就是一个名副其实的小白。对于各种框架技术都是一知半解,只是能用但是...
  • GallenZhang
  • GallenZhang
  • 2016年07月17日 11:19
  • 944

个人学习笔记开篇

大学毕业到现在已经工作了半年时间了,虽然一直在为公司的编辑器一刻不停的做功能,不过真正学习到的知识貌似没多少,倒发现了自己一身的缺点。知识体系了解的不够深刻,基础不够扎实,做事比较粗心。为了能在之后的...
  • jhgameboy
  • jhgameboy
  • 2014年01月30日 00:44
  • 1003

Object-Oriented 面向对象——理解篇

本文来自博客 We are hero , 网址 http://hi.baidu.com/vrhero/blog/item/1936f319a1420d7adab4bda6.html [转]:     ...
  • weickchen
  • weickchen
  • 2007年07月08日 11:06
  • 799

2018好开头

# 成功用Starcraft2 Galaxy Editor创建一副训练建造顺序的地图 # 该地图能用SC2LE的Random Agent测试...
  • weixin_37593078
  • weixin_37593078
  • 2018年01月02日 01:19
  • 63

学海泛舟系列文章开篇语

书山有路勤为径,学海无涯苦作舟                     ——学海泛舟系列文章开篇语            金旭亮我大约是在1994年前后开始系统学习计算机技术的,到目前为止,己接近二十...
  • bitfan
  • bitfan
  • 2013年08月18日 18:16
  • 9182

android开发之旅_开篇介绍

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”...
  • cobe100
  • cobe100
  • 2014年10月14日 13:14
  • 313

开篇首作:记录我的第一篇博客

开篇首作:记录我的第一篇博客我是一名默默无闻的程序员,目前在大众点评任职,忙碌的工作和没日没夜的加班生涯似乎已经成为了常态,大家好像都已经习惯了即使没啥事也要待到八九点才走。好像大部分的时间都是在忙着...
  • smilyboy
  • smilyboy
  • 2016年05月13日 23:09
  • 62

微博开篇,不断提升自己,立此为证

在happydeer翻译的JeffAtwood的《最牛B的编码套路》一问中提到:你也应该写博客,最后闻达于天下的人,往往就是那些能够有效书写和沟通的人。我不求闻达于天下,但是作为一个码农,我极度感觉到...
  • zjxin000
  • zjxin000
  • 2014年06月15日 23:28
  • 333

写在开篇之际

        首先热烈庆祝偶CSDN个人BLOG开通!        我是一个积极的网络爱好者(非消极哈),我喜欢通过网络来表达自己的一下情感,同时我也喜欢在网络上和志同道合的网友共叙技术人生。因为...
  • ediary
  • ediary
  • 2005年09月11日 13:31
  • 706
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:66-面向对象开篇
举报原因:
原因补充:

(最多只允许输入30个字)