php的面向对象相关特性

php的面向对象与java类似,主要涉及类的声明、命名空间的使用、构造函数、静态成员、类的封装、类的继承、方法的重写等;


1)类的声明:创建[hello.php]

创建 [index.php]

sayHello();

echo '
'; $w=new Desk(); $w->work();
2)命名空间的使用:

首先创建[Demo.php],声明命名空间为ydzc,与[Hello.php]使用同样的类名

在[index.php]中添加代码:

//用命名空间来区分名称相同的类
echo '
'; require_once 'Demo.php'; $h2=new \ydzc\Hello(); $h2->sayHello();
3) 构造函数、静态成员、 类的封装

创建父类文件:[People.php]

_age=$age;
        $this->_name=$name;
        $this->_sex=$sex;
        if(People::$NUM>People::MAN_MAX_NUM){
            throw new Exception("不能创建更多的人");
        }

    }
    //成员方法
    public function getAge(){
        return $this->_age;
    }
    public function getName(){
        return $this->_name;
    }
    public function getSex(){
        return $this->_sex;
    }
    public function hi(){
        echo $this->_name.' say hi';
    }
    private $_age,$_name,$_sex;
    //静态方法,也称类方法,用来描述类的
    public static function sayHello(){
        echo 'hello People';
    }

    //静态变量
    private static $NUM=100;
    //静态常量
    const MAN_MAX_NUM=200;

}
在[index.php]中使用构造函数、静态成员

//构造方法:创建实例时就会执行的方法
echo '
'; require_once 'People.php'; $p=new People(20,'jason','man'); echo 'age:'.$p->getAge(); echo '
'; echo 'name:'.$p->getName(); //执行静态方法,不需要创建实例
echo '
';
People::sayHello();//静态常量的使用for($i=0;$i
3)类的继承,方法的重写

创建子类文件[Man.php]

';
        echo 'Man '.$this->getName().' say hi';
    }
}
在[index.php]中调用子类的方法

//使用类的继承
require_once 'Man.php';
echo '
'; $m=new Man(30,'bruce'); $m->hi();

最后的结果如下:

php的面向对象相关特性_第1张图片






你可能感兴趣的:(php)