入门面向对象编程

上传人:宝路 文档编号:47870135 上传时间:2018-07-05 格式:PPT 页数:28 大小:536.14KB
返回 下载 相关 举报
入门面向对象编程_第1页
第1页 / 共28页
入门面向对象编程_第2页
第2页 / 共28页
入门面向对象编程_第3页
第3页 / 共28页
入门面向对象编程_第4页
第4页 / 共28页
入门面向对象编程_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《入门面向对象编程》由会员分享,可在线阅读,更多相关《入门面向对象编程(28页珍藏版)》请在金锄头文库上搜索。

1、面向对象编程类的声明类的声明是类应用的前提条件,只有在创建了类、属性和方法之后,才可以实现类的实例化,调用类中方法实现某个封装的功能。所以类的声明是一切操作的源泉。这里主要讲解以下内容:(1)类的定义 (2)成员属性 (3)成员方法 类的定义类的定义主要是通过class关键字加类名来实现的。类的格式如下:权限修饰符是可选项,可以使用public、protected、private或者省 略这3者; class是创建类的关键字; 类名是所要创建类的名称,必须写在class关键字之后,在类的名称后面 必须跟上一对大括号; 类体是类的成员,类体必须放在类名后面的两个大括号“”和“”之间。类的定义实例

2、例如:创建一个ConnDB类。代码如下:注意:虽然ConnDB类仅有一个类的骨架,什么功能都没有实现,但这 并不影响它的存在。一个类即一对大括号之间的全部内容都要在一段代 码段中,不允许将类中的内容分割成块,例如:这种格式是不允许的。成员属性u概念:在类中直接声明的变量称为成员属性(也可以称为成 员变量),可以在类中声明多个变量,即对象中有多个成员属性 ,每个变量都存储对象不同的属性信息。 u类型:成员属性的类型可以是PHP中的标量类型和复合类型, 但是如果使用资源和空类型是没有意义的。 u成员属性的声明:成员属性的声明必须有关键字来修饰,例 如:public、protected、privat

3、e等,这是一些具有特定意义的 关键字。如果不需要有特定的意义,那么可以使用var关键字来 修饰。还有就是在声明成员属性时没有必要赋初始值。成员属性的实例下面再次创建ConnDB类并在类中声明一些成员属 性,其代码如下: class ConnDB var $dbtype; var $host; var $user; var $pwd; var $dbname; var $debug; var $conn; 成员方法n概念:在类中声明的函数称为成员方法。一个类中可以声明 多个函数,即对象中可以有多个成员方法。 n成员方法的声明:成员方法的声明和函数的声明是相同,唯 一特殊之处是成员方法可以有关键字

4、来对它进行修饰,控制成员 方法的权限。声明成员方法的代码声明成员方法的代码如下: class ConnDB function ConnDB()function GetConnId() function CloseConnId()$this-conn-Disconnect(); 类的实例化类创建成功后是远远不够的,只有在经过了实例化之后,在可以调用类中的方法完成指定的操作。这里主要讲解有关类的实例化的一些方法:(1)创建对象 (2)访问类中成员 (3)特殊的访问方法“$this”和“:” (4)构造方法和析构方法 创建对象类的实例化格式如下: $变量名=new 类名称(参数); p$变量名:类实

5、例化返回的对象名称,用于引用类 中的方法。 pnew:关键字,表明要创建一个新的对象。 p类名称:表示新对象的类型。 p参数:指定类的构造方法用于初始化对象的值。如 果类中没有定义构造函数,PHP会自动创建一个不带 参数的默认构造函数。创建对象的实例例如:这里对上面创建的ConnDB类进行实例化。其代码如下: class ConnDB function ConnDB()/方法体 function GetConnId() /方法体 function CloseConnId()$this-conn-Disconnect(); $connobj1=new ConnDB(); $connobj2=ne

6、w ConnDB();$connobj3=new ConnDB(); 访问类中的成员在类中包括成员属性和成员方法,访问类中的成员包括成员 属性和方法的访问。访问方法与访问数组中的元素类似,需要通 过对象的引用来访问类中的每个成员。其中还要应用到一个特殊 的运算符号“-”。访问类中成员的语法格式如下: $变量名=new 类名称(参数); $变量名-成员属性=值; $变量名-成员属性; $变量名-成员方法;特殊的访问方法“$this”和“:” 1$this$this存在于类的每个成员方法中,它是一个特殊的对象引用 方法。成员方法属于哪个对象,$this引用就代表哪个对象,其 作用就是专门完成对象内

7、部成员之间的访问。 2操作符“:”相比$this引用只能在类的内部使用,操作符“:”才是真正的强大。操作符“:”可以在没有声明任何实例的情况下访问类中的 成员。例如:在子类的重载方法中调用父类中被覆盖的方法。操 作符“:”的语法格式如下: 关键字:变量名/常量名/方法名 这里的关键字分为3种情况: parent关键字:可以调用父类中的成员变量、成员方法和常量。 self关键字:可以调用当前类中的静态成员和常量。 类名:可以调用本类中的变量、常量和方法。构造方法和析构方法1构造方法概述:构造方法是对象创建完成后第一个被对象自动调用的方法。它 存在于每个声明的类中,是一个特殊的成员方法,如果在类中

8、没有直接 声明构造方法,那么类中会默认生成一个没有任何参数且内容为空的构 造方法。声明方法: (1)第一种在PHP5以前的版本中,构造方法的名称必须与类名相同; (2)第二种在PHP5的版本中,构造方法的方法名称必须是以两个下划 线开始的“_construct()”。语法格式如下所示: function _construct(mixed args ,) /方法体 说明:在PHP中,一个类只能声明一个构造方法。在构造方法中可以使用默认参 数,实现其他面向对象的编程语言中构造方法重载的功能。如果在构造方法中没 有传入参数,那么将使用默认参数为成员变量进行初始化。构造方法和析构方法2析构方法概念:析

9、构方法的作用和构造方法正好相反,是对象被销毁之前最后一 个被对象自动调用的方法。它是PHP5中新添加的内容,实现在销毁一 个对象之前执行一些特定的操作,诸如关闭文件,释放内存等等。 声明方法: 析构方法的声明格式与构造方法类似,都是以两个下划线开头的 “_destruct”,析构函数没有任何参数。其语法格式如下: function _destruct() /方法体,通常是完成一些在对象销毁前的清理任务 注意:在PHP中,有一种“垃圾回收”机制,可以自动清除不再使用的对 象,释放内存。而析构方法就是在这个垃圾回收程序执行之前被调用的 方法,在PHP中它属于类中的可选内容。面向对象的封装特性面向对

10、象的封装特性,将类中的成员属性和方法结合成一个独立的相同单位,并尽 可能隐藏对象的内容细节。其目的就是确保类以外的部分不能随意存取类的内部数据(成员 属性和成员方法)。从而有效避免外部错误对类内数据的影响。类的封装是通过关键字public、private、protected、static和final来实现的。下 面对其中的public、private和protected关键字进行详细讲解。 public(公共成员) 可以公开的、没有必要隐藏的数据信息。可以在程序的任何地点(类内、类外)被其他 的类和对象调用。子类可以继承和使用父类中所有的公共成员。 private(私有成员) 被private

11、关键字修饰的变量和方法,只能在所属类的内部被调用和修改,不可以在类 外被访问,即使是子类中也不可以。 protected(保护成员) private关键字可以将数据完全隐藏起来,除了在本类外,其他地方都不可以调用,子 类也不可以。但对于有些变量希望子类能够调用,但对另外的类来说,还要做到封装。这时 ,就可以使用protected。被protected修饰的类成员,可以在本类和子类中被调用,其他地 方则不可以被调用。 面向对象的继承特性面向对象的继承特性,使一个类继承并拥有另一个已存在类的成员属性和成员方法 ,其中被继承的类称为父类,继承的类称为子类。通过继承能够提高代码的重用性和可维护 性。

12、类的继承extends关键字类的继承是类与类之间的一种关系的体现。子类不仅有自己的属性和方法,而且还拥有父 类的所有属性和方法,正所谓子承父业。在PHP中,类的继承通过关键字extends实现,其语 法格式如下: class 子类名称 extends 父类名称 function 成员方法() /方法体 /省略其他方法 类的继承parent:关键字通过parent:关键字也可以在子类中调用父类中的成员方法,其语法格式如下: parents: 父类的成员方法(参数); 覆盖父类方法所谓覆盖父类方法,也就是使用子类中的方法将从父类中继承的方法进行替换,也叫方法 的重写。覆盖父类方法的关键就是在子类中

13、创建与父类中相同的方法,包括:方法名称、参 数和返回值类型。 抽象类和接口抽象类(Abstract)和接口(Interface)属于不能被实例化的特殊类。它们都是配 合面向对象的多态性一起使用。本节将对抽象类、接口的声明和使用方法进行讲解。 (1)抽象类 概述:抽象类是一种不能被实例化的类,只能作为其他类的父类来使用。 抽象类的声明:抽象类使用abstract关键字来声明,其语法格式如下: abstract class 抽象类名称abstract function 成员方法1( 参数 );abstract function 成员方法2( 参数 ); 抽象类与抽象方法:抽象类和普通类相似,包含成

14、员变量、成员方法。两者的区别在于,抽象类至少要包含 一个抽象方法。抽象方法没有方法体,其功能的实现只能在子类中完成。抽象方法也是使用 abstract关键字来修饰。 注意:在抽象方法后面要有分号“;”。抽象类和抽象方法主要应用于复杂的层次关系中,这种层次关系要求每一个子类都包含 并重写某些特定的方法 抽象类和接口(2)接口 概述:继承特性简化了对象、类的创建,增加了代码的可重性。但PHP只支持单继承。如果 想实现多重继承,就要使用接口。PHP可以实现多个接口。 接口的声明 接口类通过interface关键字来声明,接口中声明的方法必须是抽象方法,接口中不能声明 变量,只能使用const关键字声

15、明为常量的成员属性,并且接口中所有成员都必须具备 public的访问权限。接口声明的语法格式如下: interface 接口名称 常量成员 抽象方法; 接口和抽象类相同都不能进行实例化的操作,也需要通过子类来实现。但是接口可以直接使 用接口名称在接口外去获取常量成员的值。抽象类和接口例如:下面声明一个One接口,其代码如下: interface One const CONSTANT=CONSTANT value;function FunOne(); 接口之间也可以实现继承,同样需要使用extends关键字。 例如:下面声明一个Two接口,通过extends关键字继承One。 其代码如下: in

16、terface Two extends One function FunTwo(); 抽象类和接口接口的应用 因为接口不能进行实例化的操作,所以要使用接口中的成员,那么就必须借助子类。在子类 中继承接口使用implements关键字。如果要实现多个接口的继承,那么每个接口之间使用 逗号“,” 连接。面向对象的多态性面向对象的多态性,是指一段程序能够处理多种类型对象的能力。例如,在介绍面 向对象特点时举的火车和汽车的例子,虽然火车和汽车都可以移动,但是它们的行为是不同 的,火车要在铁轨上行驶,而汽车则在公路上行驶。下面将介绍多态的两种实现方法:(1)通过继承实现多态(2)通过接口实现多态面向对象的关键字在面向对象中提供了很多的关键字,通过这些关键字可

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号