PhP
二.静态
普通成员:属于对象;静态成员:属于类
关键字:static。self
class FenBi{
public $length;//长度
public static $color;//颜色
public static function test()//静态方法无法调用普通成员,因为没有对象。
{
self::$color;//静态的调用都用双冒号,任何地方;
}
public function ceshi(){
self::$color;//普通方法可以调用静态成员;
}
}
$f=new FenBi();
$f->length;//普通成员的调用方式
FenBi::$color;//静态成员的调用
二.抽象
作用:主要作为父类来使用;
关键字:abstract;
抽象类由于过于抽象,所以不能被实例化,作为父类存在;
abstract class DongWu{
public $name;
abstract public function test();//抽象方法不能有函数体;因为过于抽象了;
}
class Dog extends DongWu// 包含抽象方法的类一定是抽象类
{
public function test()//抽象方法里面不能包含函数体,其具体功能在子类里面通过重写实现;
{
echo"冲邪";
}
}
三,接口
//极度抽象的类;名称必须用"I"开头
接口里面没有成员变量
接口里面的速所有成员函数全部为抽象的
关键字:interface IUSB
interface IUSB{
public function read();//读的方法
public function write();//写的方法
}
class ShuBiao implements IUSB
{
public function read(){}
public function write(){}
}//如此就实现了
附加:
__toString()方法
class Ren{
public $name;
public function __tostring(){
return""//输出对象引用
}
}
克隆对象
class Ren{
public $name="张三";
public function __clone()//这个方法叫克隆
{$this->name = "李四";//这样就相当于在克隆是就改变了赋值
}
}
$r=new Ren();
$c=clone $r;//这就是克隆
加载类
include(" ");//里边写相对路径,也可以不加括号
require("");//同上
require_once("");//同上
注意,每次引用只能用一个!!
require更好用一点
自动加载类
要求:1.所有的类文件写在同一个目录下。2.类文件的命名规则要一致。3.类的文件名要和类名保持一致
functio__autoload($classname)P{
requore_once("./".$classname.".class.php");
}