php 面向对象。

经常被问到 php 面向对象,尼玛这么抽象的问题 让我不知道该怎么回答他?是回答面向对象的特点?封装,继承,多态?

还是回答他 类的实例化可以称之为对象?哎,想起来以前老师的一句话,php是尼玛“面向数组的编程”.虽然是句玩笑,但是php数组 无所不在 无孔不入。

牢骚发完,温故知新吧。

static 的属性和方法,只能访问static的属性和方法,不能类访问 非静态的属性和方法。因为静态属性和方法被创建时,可能还没有任何这个类的实例可以被调用

静态方法

static关键字用来修饰属性、方法,称这些属性、方法为静态属性、

静态方法。

static键字声明一个属性或方法是和类相关的,而不是和类的某

个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法

如果访问控制权限允许,可不必创建该类对象而直接使用类名加

两个冒号“::”调用

static的属性,在内存中只有一份,为所有的实例共用。

使用self::?关键字访问当前类的静态成员

一个类的所有实例,共用类中的静态属性

静态属性不需要实例化就可以直接使用,在类时就可

以直接使用。

方式: 类名::静态属性名

静态属性和方法,在类被调用时创建。(类被调用,是指类被创建或者类中的任何静态成员被调用。)

调用当前类种的其他静态方法 可以用 self::  (使用self时 这个self 代表的是类的静态成员 与 $this 不同,$this 指当前对象)  也可以使用 类名::   建议使用self::

当一个类中有非静态方法被 self:: 调用时,系统会自动将这个方法转换为静态方法

构造函数是在被实例化的时候 被创建的。

final 关键词 只能修饰类,方法  不能修饰属性 final  方法不可被继承,不可被覆盖  (呵呵 我用final abstract 同时修饰 function 报 不能用final 修饰 abstract )

abstract 抽象的。 修饰一个类  一个方法

抽象的类 不能被实例化,抽象方法不能有方法体(也就是不能有{} 要以;结尾)

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注