面向对象特征

封装性,继承性,多态性---和.net相同

抽象---对应编程中的需求分析
封装---实体类和方法类的使用(保证数据和操作安全)
1.访问修饰符 public protected private
2.方法的默认访问修饰符是public, 变量默认是private。(规范必须指定)

注意:php4中的var $a (声明public的方法不推荐)

3.php 类中的成员方法之间的调用(一般不会出现吧,类本身是对操作的继承,而不是操作之间的调用)
$this->方法名; ---和.net的不同

4.魔术方法     ---操作类中私有和保护成员(只做知识点了解,已废弃使用)破坏封装性,统一操作不方便
执行效率低
public function __set($pro_anme,$pro_val)
{
$this->pro_name=$pro_val;
}
public function __get($pro_name)
{
   if(isset($pro_name))
{
return $this->pro_name;
else{
return null;
}}}


继承(单继承)--提高代码的复用度,可维护性。  在概念上和.net相同
class Pupil extends Stu
{
//自己的属性和方法
function show()
{
echo $this->n1;  //protected被继承后仍然是protected
$this->test();
父类名称::父类方法();//调用父类方法(一般用于修改父类的变量)
parent::父类方法();//调用父类方法(parent不能大写)
}
}
单直接继承和多重继承

创建子类对象,默认不会自动调用父类的构造函数--和.net相同

类内,类外,继承的范围理解。


多态---重载    ---和其他语言的重载存在较大差别(不推荐使用)
利用魔术函数重载  __call
当一个对象调用一个不存在的方法时,会自动调用__call,传入不存在的方法名和参数
function __call($method ,$p){
if($method="overlode"){
if(count($p)==1){
$this->overlode1($p);
}else if(count($p)==2){
$this->overlode2($p);
}
}

$a =new A();
$a->test(1);


重写---逻辑上的重写--实质是查找函数时,先从子类查找,然后再父类中寻找。

重写---父类,子类的重写函数的访问权限必须满足
子类重写方法的权限>=父类的重写方法的访问权限。
同时必须注意权限对类外调用影响。







posted @ 2014-03-02 16:43  曹桦伟  阅读(133)  评论(0编辑  收藏  举报