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)

对一个类构造函数飞创重要

研究类第一的要看的就是构造函数

因为使用他人的类第一步就是要造对象;才能调用里面的对象

原文地址:https://www.cnblogs.com/koker/p/5562174.html