第五章 类和面向对象

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

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

    • 类。类是具体事物的抽象。通常类定义了事物的属性和所能完成的工作。有一点需要注意,并不是所有的面向对象编程语言的类都具有class这个明确的实体。例如Javascript就不是基于类的。Javascript中的类(Function)也具有类定义的特性。这也印证了面向对象只是一种编程范式。
    • 方法。方法是类定义对象可以做的事情。
    • 封装性、抽象性。封装性能实现的复杂性隐藏,减少出错的可能。
      从我们接触PHP开始,我们最先遇到的是函数:数组操作函数,字符串操作函数,文件操作函数等等。这些函数是我们使用PHP的基础,也是PHP自出生就支持的面向过程编程。面向过程将一个个功能封装,以一种模块化的思想解决问题。

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

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

    首先我们来看第一小节—类的结构和实现。

    Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a>