一般来说,学习PHP需要了解下面的一些特性:
对象克隆。PHP5中对OOP模型的主要改进之一,是将所有对象都看作引用,而不是值。但是,如果所有对象都视为引用,那么如何创建对象的副本呢?答案是通过克隆对象。
<?php class Corporate_Drone{ private $employeeid; private $tiecolor; function setEmployeeID($employeeid) { $this->employeeid = $employeeid; } function getEmployeeID() { return $this->employeeid; } function setTiecolor($tiecolor) { $this->tiecolor = $tiecolor; } function getTiecolor() { return $this->tiecolor; } } $drone1 = new Corporate_Drone(); $drone1->setEmployeeID("12345"); $drone1->setTiecolor("red"); $drone2 = clone $drone1; $drone2->setEmployeeID("67890"); printf("drone1 employeeID:%d <br />",$drone1->getEmployeeID()); printf("drone1 tie color:%s <br />",$drone1->getTiecolor()); printf("drone2 employeeID:%d <br />",$drone2->getEmployeeID()); printf("drone2 tie color:%s <br />",$drone2->getTiecolor()); ?>
继承。如前面所述,通过继承来构建类层次体系是OOP的关键概念。
class Employee { ... } class Executive extends Employee{ ... } class CEO extends Executive{ ... }
接口。接口是一些未实现的方法定义和常量的集合,相当于一种类蓝本。接口只定义了类能做什么,而不涉及实现的细节。本章介绍PHP5对接口的支持,并提供了一些展示这个强大OOP特性的例子。
<?php interface IPillage { // CONST 1; function emptyBankAccount(); function burnDocuments(); } class Employee { } class Excutive extends Employee implements IPillage { private $totalStockOptions; function emptyBankAccount() { echo "Call CFO and ask to transfer funds to Swiss bank account"; } function burnDocuments() { echo "Torch the office suite."; } } class test { function testIP(IPillage $ib) { echo $ib->emptyBankAccount(); } } $excutive = new Excutive(); $test = new test(); echo $test->testIP($excutive); ?>
抽象类。抽象类实质上就是无法实例化的类。抽象类将由可实例化的类继承,后者称为具体类(concreate class)。抽象类可以完全实现、部分实现或者根本未实现。
abstract class Class_name { //insert attribute definitions here //insert method definitions here }
命名空间。命名空间可根据上下文划分各种库和类,帮肋你更为有效地管理代码库。
<?php namespace Library; class Clean { function printClean() { echo "Clean..."; } } ?> <?php include "test.php"; $clean = new \Library\Clean(); $clean->printClean(); ?>
如果你使用过其他面向对象语言,可能会感到奇怪,为什么上述特性没有包括其他语言中熟悉的一些OOP特性?原因很简单,PHP不支持这些特性。为了让你不再感到迷惑,下面列出PHP不支持的高级OOP特性。
目录表 简介 self 类 创建一个类 对象的方法 使用对象的方法 __init__方法 使用__init__方法 类与对象的变量 使用类与对象的变量 继承 使用继承 概括 简介 到目前为止,在我们的程序中,我们都是根据操作数据的函数或语句块来设计程序的。这被称为 面向过程的 编程。还有一种把数据和功能结合起来,用称为对象的东西包裹起来组织程序的方法。这种方法称为 面向对象的 编程理念。在大多数时
数据封装、继承和多态只是面向对象程序设计中最基础的3个概念。在Python中,面向对象还有很多高级特性,允许我们写出非常强大的功能。 我们会讨论多重继承、定制类、元类等概念。
数据封装、继承和多态只是面向对象程序设计中最基础的3个概念。在Python中,面向对象还有很多高级特性,允许我们写出非常强大的功能。 我们会讨论多重继承、定制类、元类等概念。
面向对象是一种编程思想,并不特指某种编程语言。所以不必惊讶用 VimL 也能以面向 对象的方式来写代码。本章先简单介绍一下面向对象的编程思想,再探讨如何利用 VimL 现有的特性实现面向对象编程。最后应由用户自行决定是否有必要使用面向对象的风格来 写 VimL 脚本。 7.1 面向对象的简介 在前文中用了比较多的篇幅来介绍函数。如果主要以函数作为基本单元来组织程序(脚本) 代码,函数间的相互调用通
本文向大家介绍Javascript oop设计模式 面向对象编程简单实例介绍,包括了Javascript oop设计模式 面向对象编程简单实例介绍的使用技巧和注意事项,需要的朋友参考一下 Javascript oop设计模式 面向对象编程 最初我们写js代码的时候是这么写 这种方式会造成全局变量的严重污染,再过渡到 以上是直接使用,而不是新建对象复制一份的,复制一份的话可以这么写 这么写可以实现对
关于一个语言被称为面向对象所需的功能,在编程社区内并未达成一致意见。Rust 被很多不同的编程范式影响,包括面向对象编程;比如第十三章提到了来自函数式编程的特性。面向对象编程语言所共享的一些特性往往是对象、封装和继承。让我们看一下这每一个概念的含义以及 Rust 是否支持他们。In my view the Gang of Four is the best book ever written on