首页 > 代码库 > 面对对象的三大特性1.封装
面对对象的三大特性1.封装
目的:为了使一个类更加安全,
做法:
1.将成员变量(年龄)变成私有
2.在类里面做方法间接访问成员变量
3.在访问里面加控制
class ren
{
public $code;//人员代号
private $name;//名称
private $sex;//性别
private(私有) $age;//年龄
构造方法,用来初始化性别
function __construct($s)
{
$this->sex=$s;
}
只写不读 //造一个修改年龄的方法
function setAge($a)
{
if($a>18 && $a<50)//给条件作限制 做控制 满足该条件继
续进行
{
$this->age=$a;
}
}
//只读不写 //造一个获取age值的方法
function Getage()
{
return $this->age;
}*/
//推荐使用
//给变量赋值的魔术方法(__set)
/* function __set($name,$v)//变量名,变量值
{
if($name=="age" )
{
if($v>18 &&$v<50)
{
$this->$name=$v;
}
}
}*/
//__get魔术方法 用来去变量值
/*function __get($n)
{
return $this->$n;
}
}
造对象
$r = new ren("男");
$r->setAge("20");
$r->set("age",30);
$r->age=40;//自动调用__set()方法,将变量名当作第一个参数,将等
号右边的值当作第二个参数。
$->name="张三";
echo $r->set;//自动调用__get方法 ,将变量名当作参数;
var_dump($r);
联调的例子
/*class Dog
{
public $name;
function jiao()
{
echo $this->name."在叫";
}
function setname($n)
{
$this->name=$n;
retuen $this;
}
}
$d = new Dog();
$d->setnam("旺财")->jiao()
面对对象的三大特性1.封装