首页 > 代码库 > 面对对象的三大特性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.封装