资源预览内容
第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
第9页 / 共25页
第10页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
HCCE 2010课程体系介绍,第三章 面向对象,第三章 面向对象,内容回顾,基本数据类型 基本运算 数组 字符串,本章内容,PHP的类、对象以及成员属性和成员方法 继承、接口和多态 PHP5中的特殊方法 PHP5所不支持的OOP特性,本章目标,熟练掌握PHP的类、对象以及成员属性和成员方法 熟练运用PHP的继承、接口和多态 熟练运用PHP5中类的相关方法,1.类和对象,类和对象,在PHP中类名不区分大小写,为了兼容性通常类名首字母大写,name; ?,1.1 类,1.2 对象,name; $s1 = new Students(); $s1-display(); ?,$对象名称 = new 类名称();,PHP中使用new关键字创建类的实例化对象,PHP可以隐式地销毁对象,程序员不必担心某个对象使用结束后忘记释放相关的内存资源,1.3 类成员,类成员,成员属性 成员方法,访问控制,public 公有的 protectd 受保护的 private 私有的,str; $zhang = new Students(); echo $zhang-name .; $zhang-hello(); ?,在同一个类内部访问成员属性或成员方法使用$this关键字。,演示,1.4 构造方法和析构方法,构造方法,构造方法不能主动被调用 创建对象时才会被调用,析构方法,对象被销毁前调用,function _construct(参数1,参数2,) 构造方法的具体实现 function _destruct() 析构方法的具体实现 ,构造方法和析构方法前为双下画线,演示,1.5 静态类成员和类常量,静态类成员,使用static修饰的成员属性和成员方法被称为静态属性和静态方法 静态属性和静态方法可以在不需要类被实例化的情况下直接使用,类常量,用关键字const来修饰类常量 常量通常要大写 类常量只能被赋值一次,如果为类常量重新赋值会出错,类名称:$静态属性名称 类名称:静态方法名称(参数1,参数2,.) 类名称:类常量名称,演示,1.6 克隆,通过关键字clone来实现对象的克隆(复制) 对象的_clone()方法不能够直接被调用,name . ; echo 对象已经被克隆!; $s1 = new Students(); $s2 = $s1; $s3 = clone $s1; ?,2.继承,继承,使用关键字extends实现类的继承,PHP不支持多重继承,每个类都只能继承自一个父类,但一个父类允许有多个子类,演示,2.1 使用parent:关键字,parent:关键字,用来表示父类和要调用的父类中的成员方法,2.2 使用instanceof运算符,检测当前对象实例是否属于一个类的类型,演示,演示,2.3 覆盖父类方法,在子类中根据需要对父类中继承来的方法进行覆盖,也叫做重写 覆盖方法必须和被覆盖方法具有相同的方法名称、参数列表和返回值 在父类和子类都定义了构造函数时,当子类的对象被创建后,将调用子类的构造函数,而不会调用父类的构造函数,演示,3.抽象类和接口,抽象类和接口,抽象类和接口都是不能被实例化的特殊类,3.1 抽象类,抽象类里的抽象方法都是没有具体实现的空方法 使用关键字abstract声明抽象类 抽象类不能被实例化,但可以被继承,演示,3.2 接口,接口,接口是一组成员方法声明的结合 使用关键字interface声明接口 接口没有构造方法和析构方法,演示,抽象类和接口的区别,对接口的使用方式是通过关键字implements来实现的;对抽象类的 操作是通过继承关键字extends来实现的 接口没有数据成员;抽象类有数据成员,可以实现数据的封装 接口没有构造函数;抽象类可以有构造函数 接口中的方法都是public类型的;而抽象类中的方法可以使用 private、protected或public来修饰 一个类可以同时实现多个接口;一个类却只能继承于一个抽象类 在接口中不可以有成员方法的实现代码;在抽象类中可以有成员方 法的实现代码,演示,抽象类和接口,抽象类和接口的区别,对接口的使用方式是通过关键字implements来实现的。对抽象类的 操作是通过继承关键字extends来实现的 接口没有数据成员,但是抽象类有数据成员,抽象类可以实现数据 的封装 接口没有构造函数,抽象类可以有构造函数 接口中的方法都是public类型的,而抽象类中的方法可以使用 private、protected或public来修饰 一个类可以同时实现多个接口,一个类却只能继承于一个抽象类 在接口中不可以有成员方法的实现代码,在抽象类中可以有成员方 法的实现代码,演示,4.多态,4.1 通过继承实现多态,演示,4.2 通过接口实现多态,演示,5.PHP5中的特殊方法,5.1 _toString()方法,当一个类被修改为string类型时调用此方法,演示,PHP5中的特殊方法,在PHP中以双下画线“_”开头的函数名被称为魔法方法,5.2 _autoload()方法,快速取得对象名称并自动载入当前页面,演示,使用_autoload()方法时,自动载入的类名应该与该类所在的文件名保持一致,否则可能出错,5.3 _get()方法和_set()方法,获取或设置对象未定义的一个属性时调用,演示,5.4 _call()方法,调用未定义对象方法的异常处理,演示,6.PHP5所不支持的OOP特性,PHP5所不支持的OOP特性,命名空间 方法的重载 多重继承,本章总结,类和对象 类的成员属性和成员方法 构造方法和析构方法 静态成员和类常量 继承 覆盖或者重写 抽象类和接口 多态 PHP5中的特殊方法 PHP5所不支持的OOP特性,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号