php-类

类是对对象抽象的一个描述。
不能被执行,不能使用。
类的实例化结果就是对象

add();
  $d->show();

面向对象编程的特点:封装、继承、多态
类和对象的关系:

  • 类的实例化结果就是一个对象(类的)
  • 对对象的

类的定义

[修饰符] class 类名
{
【成员属性】 定义变量
【成员方法】 定义函数
}

常用属性修饰符:public、proteced、private、static、var

say();
    echo $this->name.":".$this->age."\n";
  }
}
  //对象实例化
  $stu=new $Stu();
  echo $stu->name."\n";
  echo $stu->age."\n";
name=$name;
    $this->age=$age;
  }

  public function getInfo()
  {
    return $this->name.":".$this->age."\n";
  }
  //析构
  public function __destruct()
  {
    echo $this->name."对象被销毁\n";
  }
}
$s1=new Stu("李四",22);
$s2=nwe Stu("王五",23);

echo $s1->getInfo();
echo $s2->getInfo();

对象的封装

$param=$value;
  }
  public function __get($param)
  {
    if($param=="age")
    {
      reture "保密";
    }
      return $this->param;
  }
}
//测试
$s=new Stu();

$s->name="lisi";

echo $s->name;
echo $s->age;

继承

假如B类继承A类,那么久继承了A中所有非私有属性和方法(函数)。
其中A叫父类(基类),B叫子类(派生类)。
class B extends A
{

}

final、static和const

  1. final关键字:主要使用修饰了类与成员方法(函数)。
    使用final关键字修饰类,表示这个类不可以有子类。
    使用final关键字修饰的方法,不可以在子类中被覆盖(重写)。
    目的:安全、没必要。

  2. static
    使用static修饰的方法和属性,不用实例化就可以使用。
    static修饰的方法中,不可以使用非静态内容($this)。
    在类中调用属性,使用self::属性名
    在类外调用属性,使用类名::属性名

  1. const
    在类中修饰成员属性,将其定义成常量属性(不可修改)
    一般要求常量名都是大写的,没有"$"符,没有其他修饰符(public)
    定义格式:const 成员常用量="值";
    在类中调用属性,使用self::属性名
    在类外调用属性,使用类名::属性名
move(37);
$g->move(Game::up);

4.检测当前对象是否是属性指定的类
instanceof 用于确定一个PHP变量是否属于某一类class的实例:
如果对象数据该类或该类是此对象的父类则返回 TRUE

类型约束

fun();
  }
}

$demo=new Demo();
$demo->test(new A());
$demo->test(new B);

魔术方法

  • clone
__clone();//魔术方法  

当执行clone科隆时

  • __toString
    必须返回一个字符串
name."\n";
  }
}
  • __atuoload()
    当new实例化一个对象时,这个类若不存在,则自动调用此函数,并将类名存入参数可以使用这个实现类的自动加载。

对象序列化(串行化)(在对象持久化存储和传输中使用)

抽象类

fun1();
$b->fun2();
$b->fun3();



$c=new C();
$c->fun4();
$c->fun5();
$C->fun6();

多态

对于同一个方法,传入不同对象,实现了不同的效果。
需要使用的技术:继承或实现,方法的覆盖。

命名空间

你可能感兴趣的:(php-类)