【笔记】面向对象

1.PHP大小写问题
           对类名不敏感
           对变量敏感
2.对于常量
关键字define
常量名大写
3.类的成员
三种成员属性 public,protected,private
成员访问->不需要加$
关键字$this用来内部访问成员
构造方法__construct()
析构方法__distruct()     不带何参数     在代码最后执行
静态属性     关键字 static      访问方式: 类名::$属性名
::用于访问静态成员,常量,覆盖成员和方法
常量     关键字 const      访问: 类名::常量名


对象克隆
关键字      clone
$objectB=clone $bojectA
__clone()克隆函数,在克隆是得到的新的属性

------------------------------------

继承
关键字      extends
class 子类名 extens 父类名{
子类成员增添成员列表
function 方法1 {

}
function 方法2{

}
}
使用parent::在子类中调用父类的成员方法
parent::父类的成员方法()

---------------------------------------

instanceof  判断对象是否属于某个类
    $obj instanceof class名 (注意class后面不需要加())  
    是 返回值1;否返回空。

---------------------------------------

覆盖
    具有相同的方法名,参数列表,返回值

---------------------------------------

抽象类和接口
    1.定义抽象类
      语法格式:
         abstract class 抽象方法名{
              抽象类的成员类表;
              abstract function 成员方法1(参数..)
              abstract function 成员方法2(参数..)
         }
         注意方法没有{}
    2.实现
         class 子类名 extends 抽象类名{
              子类成员列表
         }

    1.定义接口
         语法格式:
              interface 接口名{
                   类常量列表
                   function 成员方法1(参数);
                   fucntion 成员方法2(参数);
              }
    2.实现
         语法格式
              class 类名 implements 接口名{
                   类成员
              }
         注意使用接口方法时参数一定要对应

    抽象类和接口的区别
         (1)关键字
                   定义          抽象类      abstract           带class
                             接     口     interface          不需要带class
                   实现          抽象类     extends
                             接口          implements
         (2) 接口没有数据成员,抽象类有数据成员,抽象类可以实现数据封装
         (3) 接口没有构造函数,抽象类可以有构造函数
         (4) 接口中的方法都是public,抽象类中的方法用public,protected,private
         (5) 一个类可以实现多个接口,一个类只能实现一个抽象类
         (6)在接口中不可以有成员方法的实现代码,在抽象类中可以有
    在实际应用中如果给某个类添加更多的行为,可以定义一个接口,对数据,行为进行重用定义一个抽象类
    封装变量和函数

-------------------------------------------------

多态
    通过多种状态或阶段描述相同对象的编程方式。
    (1)通过继承实现多态
    (2)通过接口实现多态



遇到的问题:
    1.继承方法参数问题;
    2.抽象类方法{}问题
         两种写法:
              使用abstract修饰     abstract protected function GetPay();
              没用abstract修饰     protected function GetPay(){}


总结:
clone      用来克隆一个对象  克隆是调用类中__clone()方法
继承
         语法
              class 子类名 extends 父类名
         parent::               在子类中调用父类的方法和属性
         instanceof               判断对象实例是否属于某个类          $obj instanceof 类名  多态的时候用到
         覆盖父类的方法          注意覆盖的时候需要相同的方法名,方法参数,和返回值类型
         构造函数可以任意覆盖
抽象类
         语法格式:
                   abstract class 抽象方法名{
                        抽象类的成员类表;
                        abstract function 成员方法1(参数..);
                        abstract function 成员方法2(参数..);
                        protected function 成员方法3(参数){}
                   }
                   此处两种形式需要特别注意{}和;
         实现语法
                   class 子类名 extends 抽象类名{
                        抽象方法的实现
                   }
         可以有构造函数
接口
         定义接口
              interface 接口名{
                   空方法
              }
              注意:没有class,接口中不能有属性
         实现语法
              class 类名 implements 接口名{}
多态
         多态通过子类继承同一个父类或者接口来实现
         通过多种状态或阶段描述相同对象的编程方式。
         通过继承实现多态


你可能感兴趣的:(PHP,Web,面向对象)