面向对象php知识汇总

成员控制:

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 NetCard implements pci{

       Function start(){

              Echo “网络连接可以使用”;

}

Function shop(){

       Eco “网络断开,失去连接!”;

}

}

Class soundCard implements pci{

       Function start(){

              Echo “听见声音 dud u   du”;

}

Function shop(){

       Eco “声音停止!”;

}

}

Class viewCard implements pci{

       Function start(){

              Echo “可以看到图像”;

}

Function shop(){

       Eco “图像消失!”;

}

}

Class mainBoard{

       Function usePci($pci){

       $pci->start();

       $pci->shop();

}

}

Class person{

       Function install(){

       $mb=new mainBoard();

       $nc=new netCard();

$sc=new soundCard();

$vc=new viewCard();

       $pci=$nc;

       $pci=$sc;

       $pci=$vc;

       $pci->start();

       $pci->shop;

}

}

$p=new person();

$p->install();

你可能感兴趣的:(PHP,网络应用,vc++)