• 0426面向对象


    //面向过程
    //类和对象 任何东西都可以称为对象 类实例化出来的东西 是一条具体的信息
    // 类 对所有同类的对象抽象出来的东西

    //定义类
    class Ren
    {
    var $name;//称为成员变量
    var $age;
    var $height;
    var $sex; //一边不要给成员变量赋值

    function __construct($s)//构造函数
    {
    $this->sex=$s;
    }

    function run() //成员函数(方法)
    {
    echo "这个人正在跑";
    }
    function say()
    {
    echo $this->name."正在说话";
    }
    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)//对类里面的私有成员进行赋值的魔术方法 ***
    {
    $this->$name=$value;
    }
    function __get($name)//对类里面的私有成员进行取值的魔术方法 ***
    {
    return $this->$name;
    }
    }

    //使用类
    //1 实例化对象
    $r=new Ren("男");
    ///2 给成员变量赋值(调用成员变量)
    $r->name='张三'; //给对象name赋值
    $r->setage(30);
    $r->name="李四";//执行该语句会自动调用__set方法 $r->__set("name","李四")
    var_dump($r);
    //3 成员方法
    $r->say();//执行成员方法
    //访问修饰符 public
    //1 如果要加访问修饰符需要去掉var
    //2 访问修饰符有三种 public 公有的 protected 受保护的 privatc私有的 (只能在这个类里使用)
    //3 如果不加访问修饰符默认是公有的(public)

    // $this引用 它代表该对象(哪个对象调用就代表它),

    //构造函数
    //1 写法特殊 __construct

    //2 执行特殊 在造对象的时候最先执行
    //作用:对对象执行初始化操作

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

    //使用类里面的魔术方法也可以实现对私有成员的操作

    //__set() 的特点:会自动执行,把赋值语句中的变量名作为第一个参数,把变量名作为第二个参数调用__set()方法

    //__get() 的特点: 会自动执行 把赋值语句中的变量名作为参数调用__get()方法

  • 相关阅读:
    Lua函数
    Lua 造成的代码冗余太严重了, 这个现状怎么改善?
    Lua 造成的代码冗余太严重了, 这个现状怎么改善?
    Lua 错误处理方法
    Lua 错误处理方法
    C++引用、指针的选择
    C++引用、指针的选择
    Windows 7下VS2008升级补丁
    Windows 7下VS2008升级补丁
    天龙八部服务器端共享内存的设计(3/3)
  • 原文地址:https://www.cnblogs.com/wcc731546227/p/5435150.html
Copyright © 2020-2023  润新知