php面对对象编程

静态方法static  (public static $a=1)  (static function)

静态方法不能访问非静态属性(变量),普通方法可以访问静态变量

public static function test(){

echo this->name;

}        这是错的。

例子:

name=$name;

}

static function  enterschool($ifee){

self::$fee+=$ifee;

}

static function  getfee(){

return self::$fee;

}

}

$stu1=new student("xiaohong");

/*通过类名来调用静态方法*/

// student::enterschool(300);

/*通过对象直接调用*/

$stu1->enterschool(300);

$stu2=new student("xiaoming");

$stu2->enterschool(200);

echo student::getfee();

?>

在类外部 类名::类方法名 或者 对象名->类方法名

在类内部 self::类方法名  或者 类名::类方法名

abstruct

抽象方法,只有方法的声明部分,没有方法体。是为了让子类去实现

一个类中,只要有一个抽象方法,这个类必须被声明为抽象类。子类的访问范围>=父类的访问范围

抽象方法在子类中必须被重写。

抽象类不能被实例化。如果一个类继承了某个抽象类,则它必须实现该类的所有抽象方法,要不然自己就要变成抽象类

final

我们不希望一个类被继承,我们使用final来修饰这个类。这个类将无法被继承。并且final不能修饰变量(final public $a)是错的。

如果不希望类中的某个方法被子类重写,我们可以设置这个方法为final方法,只需要在这个方法前加上final修饰符.如果这个方法被子类重写,将会出现错误。

const常量

比如  const PI=3.14

常量在定义的时候必须给初值。默认就是public,不能更改成私有或者保护。

const定义的常量与定义变量的方法不同,不需要加 $ 修饰符,名称一般都大写,这是一个约定.

我们使用 类名::常量名 来调用这个常量。但是在类的内部,我们也可以使用另外一种方法,self::常量名

所谓继承就是一个子类通过extends父类,把父类的(public,protected)属性和(public,protected)方法继承下来,在子类中访问父类的方法是 父类::方法名 或者 parent::方法名

面向对象三大特征  封装,继承,多态

控制修饰符

public 表示全局,类内部,外部和子类都能访问

protected  表示保护的,只有本类或子类可以访问

private  表示私有的,只有本类的内部可以使用

方法之间可以互相调用,但是需要使用$this引用

如果要访问protected和private修饰的的成员变量,我们可以使用__get()和__set(),但不推荐用,效率不高。

__set()对protected或private属性,进行赋值操作。

__get()获取protected或private属性的值

例子:

class A{

private $n1;

public function __set($name,$value){

$this->$name=$value;

}

public function __get($name){

if(isset($name)){

return $this->$name;

}else{

return null;

}

}

}

$a1=new A();

$a1->n1="sss";

echo $a1->n1;

多态

http://blog.csdn.net/whd526/article/details/70242918

http://www.jb51.net/article/112239.htm

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,859评论 18 139
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 1,261评论 0 2
  • Advanced Language Features 知识点:一. static修饰符 static修饰符可以用来...
    风景凉阅读 455评论 0 0
  • 周五下午的区域会,周小代进门就发现公司前台精致的小女孩儿Amy换成了另外一个个子高高但缺少了灵气的女孩儿。 周小代...
    东山晴雪阅读 601评论 8 5