PHP面向对象介绍.ppt

* * * serialize()/unserialize()适用于任何PHP变量 method_exists()及property_exists()的第一个参数可以传对象实例或类名 get_class_vars()只能传类名,不适用于对象 get_parent_class () 获取参数对象的父类,如果没有父类则返回false。 is_a (object $object, string $class_name) 判断第一个参数对象是否是$class_name类本身或是其父类的对象。 is_subclass_of (mixed $object, string $class_name) 判断第一个参数对象是否是$class_name的子类。 * * 魔术方法 编写__toString()方法处理当对象被强制转型为字符串时的行为 面向对象相关函数 class_exists()用于判断给定名称的类是否存在 serialize()/unserialize(),用于序列化/反序列化对象 method_exists()用于判断对象是否有指定的方法(无视访问权限) property_exists()用于判断对象是否有指定的属性(同上) call_user_func()及call_user_func_array()同样可用于面向对象 get_class_methods()用于获取给定类名或对象的可访问方法 get_class_vars()用于获取给定类名的可访问属性及值 get_object_vars()获取给定对象的所有可访问非静态属性及值 get_class()获取给定对象的类名 get_parent_class()、is_a()和is_subclass_of()用于判断继承关系 instanceof关键字,$stu instanceof Student 课堂练习 写一个Model的抽象类,作为所有操作数据库类的基类(父类) 其应该具有$_db,$tabelName等属性 其应该具有insert(),update(),delete()等基本方法 定义search($condition)抽象方法,由子类具体实现 任意创建两张表,写两个类继承自Model,分别对应这两张表的相关操作 * * 封装的优点:开发人员可以修改内部实现,而不影响到对象的使用者; 通过权限控制用户的使用,减少错误; 继承的优点:提高了类的重用 * * * * * * * * * * * * * 子类具有父类的私有属性,只是不能访问,但是可以通过父类提供的方法进行访问 * * * * * * * * 此加载方式使用方便,但文件名及对应的目录结构被定死 * 此方式文件名及目录结构自由,但对于类数量较多时维护困难 * /article/31279.htm 从底层针对autoload机制进行详细的分析 * * * 使用完整路径来指定需实例化的类时,强烈建议使用绝对路径也即开头要包含斜杆\,否则如果该脚本自身所处在其他命名空间内,会引发加载错误 * 17173 system PHP面向对象介绍 面向对象的好处 易维护 采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的 质量高 在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量 效率高 在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量 易扩展 由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低 面向对象特性 封装 通过定义良好的接口与外部交互,隐藏内部细节,对使用者透明; 继承 是一种联结类的层次模型,提供了一种描述共性的方法,从基类中派生出子类,提高了类的重用 多态 根据使用类的上下文来重新定义或改变类的属性或方法 面向对象概念 类 类是具有相同属性和行为的一组对象的描述和定义。 对象 在类的定义基础上创建出来的实体称为对象。 类与对象的关系 如同模具与铸件的关系,类的实例化结果就是对象,而对对象的抽象就是类 PHP中定义类 通过class关键字定义类 class Student{ public $name; protected $class; private $sex; public function study(){ //函数体 echo “{$this-name} is studying”; } public function haveLunch(){ //函数体 } } PHP中使用对象 通过new关键字实例化对象

文档评论(0)

1亿VIP精品文档

相关文档