zoukankan      html  css  js  c++  java
  • 三大特性

    三大特性

    封装

    目的:为了让类更安全

    三个步骤:

    1.将成员变量变为private

    2.在类里面做一个成员方法来间接访问

    3.在该方法里面加限制条件 

    //不想让外界直接访问
    //三个步骤
    class Ren{
       public $name;
       public $sex;
       public $birthday;
       private $age;      //1.将成员变量变为private
       public  function setage($age){     //2.在类里面做一个成员方法来间接访问
             if($age>=18 && $age<=50){   //3.在该方法里面加限制条件 
                 $this->age = $age;   
                 }
         }   
       public function getage(){    //获取年龄
          return $this->age;
        }
    }
    //类里面的成员变量一般都要做封装private,类里面的成员函数一般都是public

    封装魔术方法

    //设置值
    public function __set($name,$value){
         if($name=="age"){     //如果给的名称是age,加限制条件
             if($value>=18 && $value<=50){
             $this->$name = $value;
                 }else{
       $this->$name = $value;
               }
          }
     }
    $r->age = 20;  //如果类里面写了这个方法,会自动调用这个魔术方法
    //会把age作为第一个参数丢进去,等号后面的值当作第二个参数丢进去
    
    //获取值
    public function __get($name){
               return $this->$name;
       }
    echo $r->age;   //自动调用__get魔术方法
    
    //赋值语句自动调用__set,取值自动调用__get方法

     继承

    概念:子类可以继承父类的一切
    特点:单继承(一个子类只能有一个父类,一个父类可以有多个子类)

    class Ren{
        public $name;
        public $sex;
        public function say(){
             echo"人在讲话";
        }
    }
    class China extends Ren{    //子类可以继承父类的一切,在拥有这些东西的基础上还可以去扩展一些自己的特点、内容
            public $yuyan;
           //函数重写    名词:override
            public function say(){  //写一个和父类完全一样的方法,实现重写
              parent::say(); //把父类的内容拿过来用
                 echo"你好";
        }
    }
    
    $c = new China();
    $c->say();    

    示例

    class Suan{
        public $a;
        public $b;
        public function yunsuan(){
          
        }
    }
    
    class Jia extends Suan{          //扩展
        public function yunsuan(){
            return $this->a+$this->>b;
         }
     }

    多态

    概念:当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,在调用该方法的时候表现出的不同,成为多态。    运行多态,编译多态

    重载(PHP没有)

    特点:根据参数的不同可以让一个函数实现多个功能

    条件:1.方法名一样  2.参数不同  3.参数名相同但是类型不同

  • 相关阅读:
    mysql主从复制安装配置
    mysql主从复制原理
    解决Spirng注入时名称下的红色波浪线
    Your password does not satisfy the current policy requirements
    Canal介绍以及应用
    error Unexpected use of comma operator no-sequences解决过程
    NoClassDefFoundError: javax/xml/bind/DatatypeConverter错误原因以及解决办法
    status 404 reading EduClient#getCourseInfoOrder(String)解决过程
    Vue中:error 'XXXXX' is not defined no-undef解决办法
    跨域(跨源)问题解决
  • 原文地址:https://www.cnblogs.com/Whitehat/p/8438778.html
Copyright © 2011-2022 走看看