设为首页 收藏本站
查看: 635|回复: 0

[经验分享] 面向对象php知识汇总

[复制链接]

尚未签到

发表于 2017-3-28 13:10:00 | 显示全部楼层 |阅读模式
成员控制:
1.public       没有限制
2.protected    只有类的内部和继承类内部可以访问
3.private      只有类的内部可以访问
 
 

泛化  :包含关系  a kind of      苹果是水果的一种   空三角型箭头
聚合(组合): 整体部分关系  a part of  车轮是车的一部分
           聚合分为  无  共享(空菱形)  复合(实心棱形)  三种关系
 
 
 

类名 :一般首字符大写  然后每个单词首字符大写连接
类方法参数  参数数量没有达到声明时的数量时出错   参数过多忽略后面的多余参数
 
__destruct()析构函数
封装性
  就是将对象内部的属性或方法封装自己对象的内部 private
信息隐蔽  保留有限的接口
__set() __get() __isset() __unset()   封装常用的四个方法
在某一时刻自动调用的方法
在直接访问/取值私有方法的时候调用__get()  达到对私有属性的直接访问的目的
 
对私有属性直接赋值的时候调用  __set()
判断一个变量、对象里边的成员,是否存在 isset() 对私有的属性是判断不了的  在类里边加上__isset()就可以判断了  在判断私有属性是否存在的时候调用__isset()
 
 

Unset()删除变量,在删除类的私有属性的时候调用__unset()
 
继承:extends   对原有类的扩展
Java 和 php  单继承    C++是可以多继承 父类之间可以没有关系的
私有的属性和方法不能继承过来  私有成员在子类也不能使用
 
 
方法的重载(覆盖)   定义相同的方法名   本来在php里面函数不能重载   方法重载指的是父类和子类方法的重载  父类的方法在子类重写  覆盖掉
Parent::父方法()可以调用父类被覆盖的方法  不用全部重写
 
访问类型(访问控制) private protected  public
 
Final static const
Final 只能用来定义类和方法 作用:1.使用final定义的类不能被继承 2.定义的方法不能被重载 覆盖。
Static 静态的 共享,减少内存使用  直接用类名访问 类名::成员 self代表本类名
用静态声明的方法不能使用非静态的成员
 
Const关键字 在类里面定义成员属性为常量的关键字 类名::成员属性  只能修饰属性
只有在声明的时候给初始值,以后不能赋值更改 没有¥符号 常量一般定义成为大写
 
Defined();不是在对象里面声明常量
 
__tostring()自动输出字符串
__clone()
__call($funName,$argus) 调用不存在的方法是自动调用
__autoload()自动加载
 
对象串行化
就是吧对象转为二进制的字符串,serialize()  反串行化,把二进制字符串转化为对象unserilize()函数,
 
在串行化的时候,1.对象在网络中传输的时候 2.将对象写入文件或者写数据库的时候
部分序列化 自动调用的方法__sleep()在对象序列化的时候调用
__wakeup()  反序列化的时候调用 反序列化得时候对属性初始化
 
抽象类与接口
抽象方法  在类里面没有方法体的方法就是抽象方法  没有大括号以及其中的内容,在方法名的后面加一个分号结束,另外还要在方法声明是加上一个关键字“abstract abstract function fun1();
抽象类 如果一个类里面有一个方法是抽象的,这个类就是抽象类,这个类就要使用“abstract”关键字来修饰。
         注意:抽象类不可以实例化对象
用途:抽象类就相当一个规范,必须在子类重载抽象方法。方法名称是固定的
接口:特殊的抽象类   关键字“interface 所有的方法都是抽象的   所有的属性必须是常量,所有的成员都必须是共有的。也是一种规范
 
接口的子类 使用关键字implements==extends   类是单继承的,可以继承一个类,实现一个接口    class a extends b implements c{}    一个类可以实现多个类、遵循多个规范
可以使用抽象类去实现一个接口的部分方法。  接口和接口之间也使用继承 extends
 
多态的应用:一段程序实现多个对象的功能。
 
Pci
Interface pci{
       Function start();
       Function stop();
}
Class NetCardimplements pci{
       Function start(){
              Echo “网络连接可以使用”;
}
Function shop(){
       Eco “网络断开,失去连接!”;
}
}
Class soundCard implementspci{
       Function start(){
              Echo “听见声音 dud u  du”;
}
Function shop(){
       Eco “声音停止!”;
}
}
Class viewCardimplements pci{
       Function start(){
              Echo “可以看到图像”;
}
Function shop(){
       Eco “图像消失!”;
}
}
Class mainBoard{
       Function usePci($pci){
       $pci->start();
       $pci->shop();
}
}
Class person{
       Function install(){
       $mb=newmainBoard();
       $nc=newnetCard();
$sc=new soundCard();
$vc=new viewCard();
       $pci=$nc;
       $pci=$sc;
       $pci=$vc;
       $pci->start();
       $pci->shop;
}
}
$p=new person();
$p->install();

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-356521-1-1.html 上篇帖子: PHP实用总汇之算法 下篇帖子: PHP多文件上传类
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表