zoukankan      html  css  js  c++  java
  • php面向对象基础(二)

    面向对象三大特性
    1.封装
    目的:为了使类更加安全
    做法:
    a.将成员变量变为私有的
    b.做一个成员方法来间接访问
    c.在该方法里边加限制条件
    class Ren
    {
        private $age;//18-50之间
        private $name;
        //魔术方法,给变量赋值
        function __set($n,$v)
        {
            if($n=="age")
            {
                if($n>=18&&$n<=50)
                {
                    $this->$n = $v;
                }
            }
            else
            {
                $this->$n = $v;
            }
        }
        //魔术方式,取变量值
        function __get($n)
        {
            return $this->$n;
        }
        //以下此方法仅适用于一个或者两个变量
        /*function setAge($n)
        {
            if($n>=18&&$n<=50)
            {
                $this->age=$n;
            }
        }
        function getAge()
        {
            return $this->age;
        }    */
    }
    $r=new Ren();
    $r->__set("age",20);
    $r->age=20;
    $r->name="张三";
    var_dump($r);

    2.继承
    子类可以继承父类的一切(除了私有成员之外)
    特点:单继承
    class Ren
    {
        private $name;
        function Run()
        {
            echo "跑步:<br>";
        }
    }
    class China extends Ren //extends继承自谁
    {
        //重写override
        function Run()
        {
            parent::Run();
            echo "中国人跑步";
        }
    }
    $c=new China();
    $c->Run();
    var_dump($c);

    3.多态(弱类型语言实现不了多态)
    定义:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,该引用在调用方法的时候所表现出的不同

  • 相关阅读:
    Property总结
    静态类和 关于什么时候使用“静态方法”
    最简单的MVVM结构(学习)
    依赖属性和附加属性1(转载)
    Nested & Access modifiers
    Template methord
    WPF 绑定及惯用法(一) 转载自loveis715
    关于Property赋值
    Different Binding RelativeSource Mode
    依赖属性和附加属性2(转载)
  • 原文地址:https://www.cnblogs.com/zhaohui123/p/6737545.html
Copyright © 2011-2022 走看看