您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 燕十八-PHP公益讲堂-php面向对象
—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程PHP面向对象1.过程与对象的哲学2.面向对象基础3.面向对象进阶4.高级类特性5.异常处理6.设计模式—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程1.1过程与对象的哲学(1)面向过程方法认为:每个小系统都有着明确的开始和明确的结束,开始和结束之间有着严谨的因果关系。只要我们将这个小系统中的每一个步骤和影响这个小系统走向的所有因素都分析出来,我们就能完全定义这个系统的行为就是说:作为上帝,你创造着每一步,事无巨细.—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程1.1过程与对象的哲学(2)面向过程与机械唯物主义:机械唯物主义认为,了解物质前一刻的运动状态,就可以推出下一刻的运动状态,把整个宇宙的每一个粒子的运动状态确定以后,就可以推出下一刻的运动状态,其中一个著名的假设就是拉普拉斯假定:如果有一个智能生物能确定从最大天体到最轻原子的运动的现时状态,就能按照力学规律推算出整个宇宙的过去状态和未来状态。后人把他所假定的智能生物称为拉普拉斯妖。按照这种假定,宇宙中全部未来的事件都严格地取决于全部过去的事件,事件出现的不确定性或偶然性消失了.—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程1.1过程与对象的哲学(3)面向对象(ObjectOriented,简称OO)方法:将世界看作一个个相互独立的对象,相互之间并无因果关系,它们平时是“鸡犬之声相闻,老死不相往来”的。只有在某个外部力量的驱动下,对象之间产生交互,而不同的对象有不同的特点,因此交互产生不同的结果,这个结果,甚至上帝也猜不出来.这些交互构成了这个生动世界的一个“过程”。在没有外力的情况下,对象则保持着“静止”的状态。就是说:上帝创建了每一物.物与物之间再产生过程,上帝不管—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程1.1过程与对象的哲学(4)张三是一位普通人,别人早晨向他打招呼,他会说早上好,但有一天他被车撞了,脑子受了一些伤,因此,别人早晨向他打招呼时,他有时会说早上好,但有时会说晚上好,甚至辱骂对方.—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.1面向对象基础之女娲造人—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.2面向对象基础之类与对象Class/Object:类(class)和对象(object)是面向对象方法的核心概念。类是对一类事物共性的总结,描述.是抽象的、概念上的定义;比如:人类{1颗头,2支胳膊,2条腿,每个人有自己的身高,体重有自己的名字皮肤颜色黑白黄,会哭}对象是实际存在的该类事物的每个个体,因而也称实例(instance)。比如:李开复,唐骏,奥巴马—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.2面向对象基础之对象的抽象对象归纳,抽象得到了类类是对象的归纳与抽象.从对象中,我们归纳出来了什么?(类中有什么?)有什么?属性(身高,体重,姓名)能干什么?功能(哭,笑,招呼,吃饭)我们用变量,函数来模拟属性与功能变量---属性函数---功能/方法—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.3面向对象基础之声明类声明类每个类的定义都以关键字class开头,后面跟着类名。后面跟着一对花括号.classClass_name{}—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.4面向对象基础之对象属性与方法属性:用来描述对象的数据元素属性值:可以为PHP的8种数据类型找出人的属性?方法:用来描述对象的行为的函数找出人的方法?—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.5面向对象基础之声明属性与方法声明属性与方法classClass_name{修饰符$属性名[=属性值];修饰符function函数名(){}}注:修改符只可能是public,protected,private之一后面会详述—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.6面向对象基础之实例化对象在女娲脑子中,有一个设计好的样子.女娲脑海中的构想,是类.还要根据构想,利用黄土捏出人来根据类创建一个具体对象,这个过程,称为实例化实例化语法:$obj=newclassName();—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.7面向对象基础之构造函数构造函数:在new一个对象时,会被自动调用的函数名称是固定的:__construct析构函数:在对象销毁时,会被自动调用的函数名称是固定的:__destruct在类中,__开头的函数是又叫魔术函数,在写类的时候,注意不要把函数命名为__开头,以免带来误会.—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.8面向对象基础之$this是谁?问问张三的合理体重?公式:体重(公斤)=身高厘米-105身高:174CMpublicfunctiongoodWeight(){return$this-wight-75;}$this代表其所在当前对象—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.9面向对象基础之权限控制与封装性—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.10面向对象基础之继承(1)人类:身高哭()学生类:身高学号哭()学习()律师类:身高领域:哭()辩护()—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.11面向对象基础之继承(2)人类:身高哭()学生类:学号学习()律师类:领域:辩护()—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程子类protectedpulic2.12面向对象基础之回头看protected父类privateprotectedpublicpublicpublicpublicpublic—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.13面向对象基础之继承时的权限变化子类外界父类privateprotectedpublic在继承的过程中,子类对继承到的属性和方法的权限,只能越来越宽松,不能越来越严格—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.14面向对象基础之继承的本质(1)人类:身高哭()学生类:学号学习()链式继承子类只有子类的属性和方法,当访问子类的不存在的属性时,则到父类去找相应的属性和方法$ming-height—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.15面向对象基础之继承的本质(2)人类:身高哭()学生类:身高学号哭学习()复制继承子类有子类的属性和方法,并复制所有父类允许继承的属性和方法$ming-height—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.16面向对象基础之继承private与parentprivate属性:能被子类继承,(但无权使用)parent关键字:parent::父类方法名()调用父类的(同名)函数,且只能用来调用父类方法,不能调用父类属性—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.17面向对象基础之多态家中常备多彩手电筒红光手电筒蓝光手电筒绿光手电筒黑光手电筒为什么不买四块颜色不同的玻璃,而买4个灯呢?答:手电灯买来时,说明书上说的,只能接收红/蓝/绿/黑玻璃—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程无敌变幻多彩手电筒手电筒我家只有一把普通手电筒,但镜片可以换2.17面向对象基础之多态—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程白马,马也,乘白马,乘马也。骊马,马也,乘骊马,乘马也。----《墨子*小取》—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.7面向对象基础之类属性与方法属性:用来描述类的数据元素属性值:可以为PHP的8种数据类型找出人类的属性?方法:用来描述类的行为的函数找出人类的方法?—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.8面向对象基础之类属性与对象属性张三有多高?李四有多重?王五皮肤有多黑?人类有几颗头?人类有几条腿?人类哭时发出什么声音?对象的属性,对象方法:依赖于具体对象而存在,具体内容也和具体对象有关.而类属性,类方法:和具体类相关,不依赖于具体对象而存在在内存中只有一份(重要)—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程2.10面向对象基础之self是谁?问问人类有几颗头?思考:有必要创建一个人,再数一数他的头吗?publicfunctionheads(){returnself::$head;}self代表当前类—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程3.4面向对象进阶之单例模式解决方案:单例模式单例模式的关键点:不允许外部通过new得到实例提供一个统一接口返回实例解决思路:想办法让一个.php程序中,无论怎么操作,只可能得到一个db实例问题场景:某团队开发,都要利用db类操作数据库.因此,每人为了得到实例,都会newdb()一次这些程序中,往往一个页面中,new了多次db,得到多个db对象—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程3.5面向对象进阶之克隆clone克隆语法:$zhang=newhuman()$lisi=clone$sili克隆方法:function__clone(){}克隆方法,在对象被克隆时,将被调用—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程3.5面向对象进阶之final属性final关键字可以修饰类,也可以修饰方法不能修饰属性final类不允许被继承,final方法不能被重写—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程3.6面向对象进阶之完善单例模式1:通过private__clone防止对象被克隆2:通过final,防止重要方法被重写—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程3.7面向对象进阶之抽象类飞行器idea---(发动机猜想,平衡舵猜想)万户测试----(发动机实现,平衡舵猜想)莱特--------(发动机,平衡舵)—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程3.7面向对象进阶之抽象类1:抽象类不能被实例化2:有抽象方法必是抽象类,反之不成立3:抽象方法没有方法体4:抽象类继承抽象类时,抽象方法不能被重写5:抽象方法直至继承至没有抽象方法时,才能实例化—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程4.1面向对象高级之类常量类外部常量:define类内部常量:constconst不用加权限控制const类内部访问用self::类外部访问用className::—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程4.2面向对象高级之接口类是一种东西,对象的描述接口是什么?接口是零件—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程4.3面向对象高级之接口的特点接口的方法必是公共的接口的方法默认是抽象的接口不能有属性(常量可以用)类必须实现接口的所有方法才能实例化类可以实现多接口接口也可以继承接口—精品PHP公开课免费直播!燕十八主讲zixue.it燕十八精品PHP教程5.1异常处理你到井下去看看,看能通到美国不?要是不能,你写封遗嘱通不掉美国,还有毒蛇
本文标题:燕十八-PHP公益讲堂-php面向对象
链接地址:https://www.777doc.com/doc-4356670 .html