版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、昨日回顾2封装性4抽象类,抽象方法4抽象类 abstractclass:4抽象方法:5抽象类和抽象方法的关系6的重载技术 overloading7区分的重载和面象编程领域中的常规重载概念7常规重载概念:7中重载的概念:8属性重载8 set($name, $value)方法8 get($name)方法9 isset($name)方法10 unset($name)方法11方法重载11接口13接口?13为什么需要接口?13关于接口的其他细节14msqldb 工具类的继续扩展15昨日回顾类的继承基本概念继承:就是一个类自动获取到另一个类的特classBextendsA.类的定义息的过程。派生: 从已有
2、的一个类来扩展出另一个类的过程。父类:基类,类,子类:下级类,派生类,后代类。继承概念的完整演示:修饰控制符:所谓,就是“使用”(调用)方法或属性的以下两种形式:classApublic成员 1;protected 成员 2;private成员 3;3 个修饰符:public:公共的,公开的protected:受保护的,只有自己“ private: 私有的位置指代码位置:范围”可用,即有继承关系的类中可以使用。3 个一个类的:一个类的继承关系类的一个类的外部:修饰符和位置的 2 者结合之后的规则为:构造方法和析构方法在继承中的表现:1,如果子类中没有,则会自动调用的构造方法或析构方法;2,如果
3、子类中有,就不会自动调用,但:2.1,此时,可以在对应方法中人为调用父类的对应方法。类继承关系类类外部publicYesYesYesprotectedYesYesNoprivateYesNoNo对象-实例属性或实例方法类:静态属性或静态方法parent 关键字:1,本质上,它代表的是父类这个类;2,但常常,它在应用实践中,其实也代表着父类对象是根据调用代码本身的调用者来决定。 classAfunctionf1()sicfunctionf2()classB extendsA functionf3().parent:f1();parent:f2();/代表父类对象其实也是子类对象,原因是 f3 是
4、实例方法。/代表父类!$b1 =new B();$b1-f3();重写 override什么叫重写:子类重新定义父类的同名属性或方法。为什么需要重写?因为子类定义的时候,往往都是比父类更有“详尽”。重写的基本要求:1, 下级重写的特性信息时,修饰符的范围不能更“小”:父类:public, 子类:只能是 public父类:protected,子类:可以说 protected,和public父类:private,子类:不能重写。2,下级重写的方法时,要求参数跟保持一致。3,但,对于构造方法,没有参数要求析构方法根本就没有参数。最终类和最终方法最终类:不允许继承下去的类。finalclassA.最终
5、方法:在继承类中,不允许被覆盖的方法。classAfinal function f1().设计模式什么叫设计模式?就是面工厂模式:象开发中的一些常见任务的常规写法的经验总结出来的代码模式classGongchangsicfunctionGetObject( $c ) returnnew$c();/$c 代表一个类名单例模式:classS/设定一个静态属性:sicprivate$instance= null;/将构造方法似有化:privatefunction construct()/定义一个静态的方法并进行判断以返回该类的“唯一对象”: sicfunctionGetOne()if(empty(
6、self:$instance ) ) self:$instance = new self();returnself:$instance ;数据库工具类封装性就是将“自己东西自己广义封装:”。类的设计语法,本身就是一种封装:将一个“变量”封装到自己将一个“函数”封装到自己将一个“常量”封装到自己,就成为了自己的“属性”别人不能随便用了,就成为了自己的“方法”别人不能随便用了,就成为了自己的“类常量”别人不能随便用了但常规所说的封装性,是比这个更进一步狭义封装:设计一个类的时候,尽可能将自己性信息。的特息,只给外界使用()那些必不可少的特最的封装:全部成员都做出私有的!最宽泛的封装:全部成员都做出
7、公共的!抽象类,抽象方法抽象类 abstractclass:就是一个不能实例化的类。形式:abstractclass类名.类成员定义.用处:用于“和方法)。举例:程序员”定义一些类的共同的类(父类),让这些都具有一些共同的特息(属性抽象方法:就是一个“什么也不做”的方法其没有“方法体”,只有“方法头”方法头包括:function 关键字,方法名,方法的形参。形式:abstractfunction方法名(形参 1,形参 2,);为什么需要抽象方法?是为了程序员设计的类,规定(要求)下级类需要去“做什么”但又不规定怎么做。抽象方法,基本上都是跟抽象类一起使用!举例:抽象类和抽象方法的关系一个类中有
8、抽象方法,则该类必须为抽象类o 反过来,一个抽象类中,可以没有抽象方法,虽然这不常见。子类继承自一个抽象类,则子类:o 要么去实现父类中的所有抽象方法其实就去完成该抽象类的具体工作代码。o 要么子类也作为抽象类,此时就可以不实现父类的抽象方法当然去实现也可以。子类实现抽象父类的抽象方法时,控制修饰符的范围不能降低,且方法的参数也须一致因为此时其实就是“重写”子类重写了父类的该方法。的重载技术 overloading区分的重载和面象编程领域中的常规重载概念常规重载概念:在一个类中,如果定义了 2 个或 2 个以上的同名方法,则此时称这种现象叫做“重载”方法重载。比如 java 中:classAp
9、ublicf1().方法体.publicf1(p1).方法体.publicf1(p1,floatp2).方法体.中重载的概念:是指,使用一个对象(或类)的时候,如果了其并没有定义的(即不存在的)属性或方法,则会使用某些预先定义好的“特殊方法”来应对这种情况。可见,通常,中的所谓重载,其实是一种“应对中,将重载分为两大类情况:使用对象或类的措施”属性重载:应对使用不存在的属性的时候的措施方法重载:应对使用不存在的方法的时候的措施属性重载是在定义一个类的时候,预先定义 4 个方法,来应对使用该类的对象所不存在的属性的时候的措施。明确一个事实:属性就是变量!继续:变量只有 4 种操作:赋值,取值,i
10、sset 判断, unset 销毁;则:属性也只有 4 种操作:赋值,取值,isset 判断, unset 销毁;于是:属性重载,其实就是在类中预先定义 4 个特殊方法,来应对这 4 种对属性的“可能错误的操作”set($name, $value)方法该方法,在对一个对象不存在的属性进行赋值的时候,会被自动调用!实际上,这种机制,只是给程序员一个“机会”,让可以对此进行必要的处理,而本身并不做任何事情!上述代码,只是演示了该特殊方法被称为魔术方法的使用及调用机制。而:可以充分利用该方法,让的对象实现“属性”需要的属性无需定义,随意要,随时用!get($name)方法该方法,在对一个对象不存在的
11、属性进行取值的时候,会被自动调用!实际上,这种机制,只是给程序员一个“机会”,让可以对此进行必要的处理,而本身并不做任何事情!isset($name)方法该方法,在对一个对象不存在的属性进行 isset()判断的时候,会被自动调用!设想这种的情况:类 A:定义了属性 p1=1定义了 set()方法可以接受各种不存在的属性值;对象$a1 = newA()$a1-p2 = 2; /存起来了则:isset($a1-p1); isset($a1-p2);isset($a1-p3);/应该是 true/理应也是 true/理应是 false则代码改造如下(继前面代码):unset($name)方法该方法
12、,在对一个对象不存在的属性进行 unset()操作的时候,会被自动调用!继续前面:如果$a1 有一个属性 p2 是未定义的,但通过 set()方法接受了该属性,则 unset 该属性,理应确实销毁它!继续前续代码:方法重载当对一个对象未定义的实例方法进行调用()的时候,会自动调用预先定义好的魔术方法: call()当对一个类未定义的静态方法进行调用()的时候,会自动调用预先定义好的静态魔术方法: callsic()接口接口?接口是比抽象类更抽象的“类似类的一种结构”。接口中,其实只有这两种成员:常量,抽象方法!抽象类假设如下:abstractclassA constPI = 3.14;abst
13、ractfunction f1();则可以对其摇身一变,为一个“接口”:AconstPI = 3.14;functionf1();/接口中的方法都只能是抽象的,不需要 abstract 关键字为什么需要接口?面象的单继承是对“现实世界”的多继承现象的一种妥协为了不使代码过于复杂;但:有时候,又往往需要有多继承的情形需要描述。于是,使用接口这种技术来对该妥协技术的一种“弥补”接口可以做到多继承!不过,对接口的继承,已经不再叫做“继承”了,而是称为“实现”implements即,一个类,去使用一个接口,称为“实现该接口”。class类名implements接口名 1,接口名 2,. 。类的成员定义。演示:erface关于接口的其他细节1, 一个类,可以继承其他类(只能单继承),并同时实现其他接口(可多实现),形式如下:class类名Bextends类名 A.类的成员定义.implements接口名 I1,接口名 I2,2,接口之间也可以相互继承,形式如下: erface接口 1extends接口 2接口的成员定义3,接口中的常量和抽象方法都只能是 pu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB65T 8027-2024建筑隔震和消能减震工程施工与质量验收标准
- 入侵报警系统清洗消毒和维修保养制度
- 导游业务模拟测试题及答案
- 移动医疗服务专业解读与实施路径
- 污水处理工试题库及答案(中级工)
- 中国牙外伤诊疗指南(2026版)
- 电梯季度维护保养记录表
- 儿童化妆品安全专项排查
- CN119908335A 一种商品猪的选育方法
- 2026年跨境电商冷链仓储合同协议
- 2026安徽师范大学人才招聘120人备考题库完整参考答案详解
- 2026“才聚齐鲁成就未来”山东省征信有限公司社会招聘18人备考题库【含答案详解】
- 2025-2030中国全断面隧道掘进机(TBM)发展现状调研及前景趋势洞察报告
- 2026年高血压病诊疗指南
- 2026平安银行石家庄分行橙光实习生招聘考试参考试题及答案解析
- 品质管理人员考核制度
- DB37T5134-2025海绵城市建设工程施工与验收标准
- 2025年江苏交控招聘笔试真题及答案
- 三年(2023-2025)中考历史真题分类汇编(全国)专题40 特殊题型(填空题、主客一体题、改错题等)综合题(原卷版)
- 糖尿病足中药泡脚方课件
- (新教材)2026年人教版一年级下册数学 欢乐购物街 第1课时 认识人民币 课件
评论
0/150
提交评论