php学习 面向对象 课件

 更新时间:2008年06月15日 12:58:59   作者:  
面向对象 对象概念是面向对象技术的核心。在显示世界里我们所面对的事情都是对象,如计算机、电视机、自行车等。在面向对象的程序设计中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象

    静态属性和方法
static关键字 来声明静态方法
static静态变量 在类的内部生成一个静态变量 就是能够被所有类的实力化共想 也就是说静态成员则放到了“初始化静态段”,在类第一次被加载的时候放入的,可以让堆内存里面的每个对象所共享
使用方法:self::$静态属性、self::静态方法
static function p(){
    echo self::$country;
    echo self::PI;//访问常量
    //echo $this->name;在静态方法中只能操作静态属性
    //self::p();
    }
外部调用:类::$静态属性、类::静态方法
const关键字:用来生成常量 常量是唯一的不能改变的 惯例常量为大写
  const CONSTANT = 'constant value'; 生成一个常量
  echo self::CONSTANT;//类内部访问
  echo ClassName::CONSTANT;//类外部访问

    继承性
B类的对象拥有A类的全部属性与行为,称作B对A类的继承。
假如一个类从多个类中继承了属性与服务,这称为多继承,通常我们成为继承类为子类被继承类为父类,在PHP中只有单继承,但一个父类可以被多个类继承,但是一个子类只能有一个父类,但是允许关联继承,通过继承可以减化类的定义。
extende声明继承关系 
语法格式:class  B  extends  A  此范例指明 B继承了A
    类的外部访问对子类是有效的

    子类与父类的属性与方法
子类继承父类的所有内容,但父类中的private部分不能直接访问
子类中新增加的属性和方法是对父类的扩展
子类中定义的与父类同名的属性是对父类属性的覆盖,同名的方法也是对父类方法的覆盖
    重写的方法
在子类中,使用parent访问父类中的被覆盖的属性和方法
parent::__construce();
parent::$name;
parent::fun();
覆盖父类原有属性
clone克窿对象 语法格式$c=clone $p;   $c克窿的对象$p 输出echo $c->name;  

    对象比较
===两个比较运算符。
==是比较两个对象的内容。
===是比较对象的句柄,即引用地址。
instanceof操作符用于检测对象实力是否属于某一个类的类型  属于返回true 不属于返回false
__clone()如果想在克隆后改变原对象的内容,需要在__clone()中重写原本的属性和方法
  function __clone(){
      $this->name="我是一个克隆人";
    }
final表示一个类是最终版本 也就是说它不能在被子类调用

    多态性
多态性是指在父类中定义的属性或行为被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或行为在父类及其各个子类中具有不同的语义。
就是说同一种方法在子类与父类中执行的结果不同。
class A {
        function info(){
         echo “A INFO”; 
         }  
       }
      class B extends A {
        function info(){
         echo “B INFO”; 
         }  
       }
      class C extends A {
        function info(){ 
          echo “C INFO”; 
          } 
       }
      function printinfo($obj){ 
          function printinfo(A $obj){
          if($obj instanceof A)
          $obj->info();
          $obj->info();
        }
      }                                             
$a=new A();  $b=new B();  $c=new C();
printinfo($a);  //输出A INFO
printinfo($b);  //输出B INFO
printinfo($c);  //输出C INFO

    抽象方法和抽象类
抽象方法是作为子类摸版使用的。
abstract class Person{
  public $name;
  abstract function getInfo();
}
抽象类不能被实力话,一个抽象类中,必须有一个抽象方法。但是抽象类中可以定义动态函数。
    接口
当一个类继承了一个接口之后,它要覆盖接口的所有方法,接口只能声明常量,接口的方法必须定义为共有否则无法继承,接口可以与多个接口间继承
语法:
interface PCI{
  const TYPE="PCI";
  //public $name; error
  function start();
  function stop();
  }
接口中的方法可以声明为static
  interface A{ function a();}
  interface B{ function b();}
  interface C extends A{ function c();}
  class D implements B,C{
    function a(){}
    function b(){}
    function c(){}
  }
phpchina教学课件
php面向对象.rar

相关文章

最新评论