zoukankan      html  css  js  c++  java
  • 4月26日 封装

    <?php

    class Ren
    {
     private $name;
     private $sex;
     private $age;

     function __construct($s)
     {
      $this->sex = $s;
     }
     public function Say()
     {
      echo "hello";
     }
     function __destruct() //析构函数,对象销毁前执行
     {
      echo "该对象销毁了!";
     }
     
     /*function SetAge($a) //给age赋值的函数
     {
      if($a>10 && $a<50)
      {
       $this->age = $a;
      }
     }
     function GetAge() //取age的值
     {
      return $this->age;
     }*/
     
     function __set($name,$value) //对类里面的私有成员进行赋值的魔术方法
     {
      if($name == "age")
      {
       if($value>20 && $value<50)
       {
        $this->$name = $value;
       }
      }
      else
      {
       $this->$name = $value;
      }
     }
     
     function __get($name) //对类里面的私有成员进行取值的魔术方法
     {
      return $this->$name;
     }
    }

    $r = new Ren("男");
    //$r->SetAge(40);
    $r->Say();
    echo $r->sex;

    //$r->__set("name","张三");
    //$r->name = "李四"; //执行该语句会自动调用__set方法
    //$r->sex = "女";
    //$r->age = 40;

    //echo $r->GetAge();

    var_dump($r);

    //面向对象三大特性
    //封装
    //目的:让类更加安全,不让外界直接访问类里面的成员变量
    //做法:1.把成员变量做成私有的
    //2.做一个方法来实现变量取值或赋值,在方法里面加限制条件

    //使用类里面提供的魔术方法也可以实现对私有成员的操作
    //__set()特点:会自动执行,把赋值语句中的变量名作为第一个参数,把变量值作为第二个参数调用__set方法
    //__get()特点:会自动执行,把取值语句中的变量名作为参数调用__get方法


    //继承
    //多态

    ?>

  • 相关阅读:
    程序员累了怎么办?
    vue.js 组件注册实例
    background新增的N个强悍功能!!!
    相思别去问得失
    你说的我正在经历
    千折扇
    盼盼Degenerate——清除浮动的方法
    let 和 var定义变量的区别-盼盼Degenerate
    winform关闭窗体时,给用户友好提示!
    web学习笔记1--HTML
  • 原文地址:https://www.cnblogs.com/dongqiaozhi/p/5441280.html
Copyright © 2011-2022 走看看