PHP学习笔记---封装(面向对象三大特性之一)
回顾:类的概念(对象的抽象化) 对象(类的实例化)
定义 类:成员变量;成员方法;
如何造对象呢:
1 $r = new ren(); new 创建
调用对象的成员 : $r->
对于面向对象有三大特性:封装;继承;多态;
关于封装(做类的将类进行封装)
目的是:让类更加安全,不让外界直接访问类的成员;
做法:不让外界直接访问类的成员
具体做法一:
1.成员变为私有:访问修饰符(publc ,private ,protected)
public:公共的 所有的地方都能访问到;
private:私有的 只有这一个类里面可以访问到 (它的子类也不能访问);
protected:受保护的 在该类含有它的子类里面可以访问到(只能访问含有子类)
1 class ren 2 { 3 var $age; ——private $age; //转为私有 4 } 5 $r = new ren();
2.造成员方法来操作变量
class ren { private $age; //转为私有 public function SetAge($a) { $this->age=$a; } } $r = new ren(); $r->SetAge(20);//给一个值 var_dump ($r);
还有其他方法:(加入判断)
///造方法去给变量$age赋值 public function SetAge($a) { if($a>18 and $a<50) { $this->age = $a; } } //取值 function GetAge() { return $this->age; }
3.使用类里面提供的__get()和__set()方法
function _set($n,$v) //变量赋值方法 { if($n=="age") { if($v>18and$v<50) { $this->$n=$v; } } else { $this->$n=$v;//一个汉字3个字节 } } //取值方法 function _get($n) { return $this->$n; }*/ } $r=new ren("男"); $r->age=20; $r->name=“张三”; $r->SetAge(); var_dump($r)
***构造函数 不加访问修饰符
:在造对象的时候,对成员变量进行初始化
//1.执行时间特殊:造对象的时候就自动执行
//2.写法特殊:__construct 构造方法的名称必须是construct
class { private $sex function __construct($s) { $this->sex = $s; } } $r=new ren("男");//构造函数在new的里面就调用构造函数 传入参数“男” var_dump($r)
对一个类构造函数飞创重要
研究类第一的要看的就是构造函数
因为使用他人的类第一步就是要造对象;才能调用里面的对象