2011年7月28日

摘要: 第十节--抽象方法和抽象类面向对象程序通过类的分层结构构建起来. 在单重继承语言如PHP中, 类的继承是树状的. 一个根类有一个或更多的子类,再从每个子类继承出一个或更多下一级子类. 当然,可能存在多个根类,用来实现不同的功能. 在一个良好设计的体系中,每个根类都应该有一个有用的接口, 可以被应用代码所使用. 如果我们的应用代码被设计成与根类一起工作,那么它也可以和任何一个从根类继承出来的子类合作.抽象方法是就像子类中一般的方法的占位符(占个地方但不起作用),它与一般方法不同—没有任何代码. 如果类中存在一个或更多抽象方法, 那么这个类就成了抽象类. 你不能实例化抽象类. 你必须继承它们,然后 阅读全文
posted @ 2011-07-28 11:26 兴勇 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 除了限制访问,访问方式也决定哪个方法将被子类调用或哪个属性将被子类访问. 函数调用与函数本身的关联,以及成员访问与变量内存地址间的关系,称为绑定. 在计算机语言中有两种主要的绑定方式—静态绑定和动态绑定. 静态绑定发生于数据结构和数据结构间,程序执行之前. 静态绑定发生于编译期, 因此不能利用任何运行期的信息. 它针对函数调用与函数的主体,或变量与内存中的区块. 因为PHP是一种动态语言,它不使用静态绑定. 但是可以模拟静态绑定.动态绑定则针对运行期产生的访问请求,只用到运行期的可用信息. 在面向对象的代码中,动态绑定意味着决定哪个方法被调用或哪个属性被访问,将基于这个类本身而不基于访问范围. 阅读全文
posted @ 2011-07-28 11:04 兴勇 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 类的静态成员与一般的类成员不同: 静态成员与对象的实例无关,只与类本身有关. 他们用来实现类要封装的功能和数据,但不包括特定对象的功能和数据. 静态成员包括静态方法和静态属性.静态属性包含在类中要封装的数据,可以由所有类的实例共享. 实际上,除了属于一个固定的类并限制访问方式外,类的静态属性非常类似于函数的全局变量我们在下例中使用了一个静态属性Counter::$count. 它属于Counter类,而不属于任何Counter的实例.你不能用this来引用它,但可以用self或其它有效的命名表达. 在例子中,getCount方法返回self::$count,而不是Counter::$count 阅读全文
posted @ 2011-07-28 10:00 兴勇 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 第六节--访问属性和方法一个对象实例的属性是变量,就像PHP的其他变量一样. 但是你必须使用->运算符来引用它们. 不需要在属性前使用美元符$. 例如, 6.1中打印User对象的name属性那一行. 可以联用->,如果一个对象的属性包含了一个对象,你可以使用两个->运算符来得到内部对象的属性. 你甚至可以用双重引用的字符串来放置这些表达式. 看6.5中的例子,对象House中的属性room包含了一组Room对象.访问方法和访问属性类似. ->运算符用来指向实例的方法. 在例子6.1中调用getLastLogin就是. 方法执行起来和类外的函数几乎相同.如果一个类从另一 阅读全文
posted @ 2011-07-28 09:53 兴勇 阅读(156) 评论(0) 推荐(0) 编辑
摘要: PHP5中的对象模型通过引用来调用对象, 但有时你可能想建立一个对象的副本,并希望原来的对象的改变不影响到副本 . 为了这样的目的,PHP定义了一个特殊的方法,称为__clone. 像__construct和__destruct一样,前面有两个下划线.默认地,用__clone方法将建立一个与原对象拥有相同属性和方法的对象. 如果你想在克隆时改变默认的内容,你要在__clone中覆写(属性或方法).克隆的方法可以没有参数,但它同时包含this和that指针(that指向被复制的对象). 如果你选择克隆自己,你要小心复制任何你要你的对象包含的信息,从that到this. 如果你用__clone来复 阅读全文
posted @ 2011-07-28 09:35 兴勇 阅读(161) 评论(0) 推荐(0) 编辑

2011年7月27日

摘要: class Counter { private static $count = 0; function __construct() { self::$count++; } function __destruct() { self::$count--; } function getCount() { return self::$count; } } //建立第一个实例 $c = new Counter(); //输出1 print($c->getCount() . "\n"); //建立第二个实例 $c2 = new Counter(); //输出2 print($c- 阅读全文
posted @ 2011-07-27 22:08 兴勇 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 当你声明一个类,你需要列出对象应有的所有变量和所有函数—被称为属性和方法. 3.1.1中显示了一个类的构成. 注意在大括号({})内你只能声明变量或者函数. 3.1.2中显示了如何在一个类中定义三个属性和两个方法.3.1.1class Name extends Another Class { Access Variable Declaration Access Function Declaration } 3.1.2//定义一个跟踪用户的类 class User { //属性 public $name; private $password, $lastLogin; //方法 public fu 阅读全文
posted @ 2011-07-27 17:19 兴勇 阅读(418) 评论(0) 推荐(0) 编辑
摘要: PHP5有一个单重继承的,限制访问的,可以重载的对象模型. 本章稍后会详细讨论的”继承”,包含类间的父-子关系. 另外,PHP支持对属性和方法的限制性访问. 你可以声明成员为private,不允许外部类访问. 最后,PHP允许一个子类从它的父类中重载成员.PHP5的对象模型把对象看成与任何其它数据类型不同,通过引用来传递. PHP不要求你通过引用(reference)显性传递和返回对象. 在本章的最后将会详细阐述基于引用的对象模型. 它是PHP5中最重要的新特性.有了更直接的对象模型,就拥有了附加的优势: 效率提高, 占用内存少,并且具有更大的灵活性.在PHP的前几个版本中,脚本默认复制对象. 阅读全文
posted @ 2011-07-27 17:13 兴勇 阅读(164) 评论(0) 推荐(0) 编辑

2011年7月17日

摘要: 编辑器加载中...最早的时候有一个浏览器叫NCSA Mosaic,把自己标称为NCSA_Mosaic/2.0 (Windows 3.1),它支持文字显示的同时还支持图片,于是Web开始好玩起来。然后出现了一个新的网页浏览器,“Mozilla”,其实就是“Mosaic终结者”的意思,这搞的Mosaic很不爽,(毕竟Mosaic出道早,江湖老),新浏览器最后正式公布的名称是Netscape,它把自己标称为Mozilla/1.0 (Win3.1),更好玩了。Netscape支持框架显示,后来框架在大家中间流行起来了,但Mosaic不支持框架啊,于是伟大的“用户代理人探测” (User-Agent)技 阅读全文
posted @ 2011-07-17 13:23 兴勇 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 编辑器加载中...版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan稍微有点水平的一看就能明白我讲的是啥吧...有的内容略...这个东西不能留下能直接用的.培养大家的开发能力. 去掉了关键注释<?php/*** @name test.php* @date Thu Jan 24 00:24:20 CST 2008* @copyright 马永占(MyZ)* @author 马永占(MyZ)* @link http://blog. 阅读全文
posted @ 2011-07-17 11:25 兴勇 阅读(202) 评论(0) 推荐(0) 编辑

导航