PHP5面向对象高级特性:static变量与final、abstract类

需积分: 9 0 下载量 65 浏览量 更新于2024-07-23 收藏 850KB DOC 举报
在PHP5面向对象编程的第三章中,主要探讨了高级类特性,包括静态变量和方法。这部分内容深入讲解了以下几个关键知识点: 1. **静态变量和方法**: - **静态属性**:`static`关键字用于定义与类关联而不是与类的特定实例相关的变量,称为类属性。它们是所有类实例共享的,即在内存中只有一份。例如,计数器`$count`在例3-1-1.php中作为私有静态属性,确保外部无法直接访问,但所有实例共享同一计数。 2. **静态属性的使用**: - 静态属性可以直接通过类名(如`ClassName::count`)进行访问,无需实例化对象。 - 静态属性只能访问静态属性,不能访问非静态属性。 3. **静态方法**: - 类中的静态方法同样与类相关,而不是特定实例。可以通过类名调用,例如`ClassName::myStaticMethod()`。 - 可以直接调用静态方法,它们不能访问非静态属性或方法,除非通过类名间接引用。 4. **设计模式中的单件模式**: - 单例模式在此部分可能被提及,它是一种常用的软件设计模式,确保系统中只有一个实例,并提供全局访问点。 5. **final类和final方法**: - `final`关键字表示类不能被继承,方法不能被覆盖。这对于防止代码意外修改或重复具有重要意义。 6. **常量**: - PHP5中提供了常量的支持,用于存储不变的值,如`define`语句。 7. **抽象类和抽象方法**: - `abstract`关键字用于声明抽象类,其中包含抽象方法,这些方法没有实现,需要子类来提供具体实现。 - 抽象类可以互相继承,但不能实例化。 - PHP5.2.0之后引入了静态抽象方法,既不能被实例化,也不能在子类中被覆盖。 8. **模板模式(Template Method Design Pattern)**: - 模板模式定义了一个算法的框架,但具体步骤由子类实现。这里可能会提供一个实际的示例来展示这种模式的应用。 9. **self和this关键字**: - `self`关键字用于访问当前类的静态成员,而`this`关键字用于访问当前对象的属性和方法,但静态方法中不能使用`this`。 总结来说,本章重点在于理解并掌握PHP5中静态特性、类的封闭性和继承限制,以及如何通过抽象类和模式设计实现代码复用和模块化。理解这些概念有助于开发更灵活、易于维护的面向对象PHP应用程序。