面向对象的三大特性:封装、继承、多态
1、封装
封装的目的:让类更加安全,做法是不让外界直接访问类的成员
具体做法:1、成员变为私有:访问修饰符(public、private、protected)
2、造成员方法来操作变量 SetAge()和GetAge()方法 (每个变量都需要两个方法很麻烦,用PHP以下的方法)
3、PHP操作变量的方法(双下划线__set()和__get()方法)也可以控制用户的输入,并且只需要一个就好
具体例子:
class SuanShu{
private $a;
private $b;
function __construct($a,$b){
$this->a = $a;
$this->b = $b;
}
function __set($n,$v){
if($n == "a" || $n == "b"){
if($v > 0 and $v < 100){
$this->$n = $v;
}
}else{
$this->$n = $v;
}
}
function __get($n){
return $this->$n;
}
function He(){
return $this->a + $this->b;
}
function Ji(){
return $this->a * $this->b;
}
}
$r = new SuanShu(5,5);
$r->a = 8;
$r->b = 8;
echo $r->He();
echo "<br/>";
echo $r->Ji();
需要注意的是成员变量的$符号使用
2、构造函数
在创建对象的时候,对成员变量进行初始化
特点:1、在创造对象的时候自动执行。2、名字是双下划线 __construct()
function __construct($s)
{
$this->sex = $s;
}