zoukankan      html  css  js  c++  java
  • 面向对象的三大要素

     一、封装

      1、目的:是为了使类更加安全

      2、步骤:

    (1)       将成员变量变为私有

    (2)       做一个成员方法间接访问

    (3)       在该方法里面来加限制条件

    第一种:

    class Ren

    {

    private $age;

           function setAge($n)        -------------给变量赋值  

           {

                  if ($n>=18 && $n<=50){      

                  $this->age=$n;

                  }

                  }

           function getAge()        -------------取值  

           {

                  return $this->age;

                  }

           }

    $r = new Ren();

    $r->setage(12);        -------------给变量赋值  

    echo $r->getName();         -------------取值  

     缺点: 如果成员变量太多,就需要赋值取值很多次;代码工程量大。

    第二种: 采用魔术方法 (.net中引用成员属性,php中没有,所以采用魔术方法)

    class Ren

    {

           private $age;

                  private $name;

           //魔术方法,给变量赋值

                  function __set($n,$v)     //$n:变量名称   $v:变量值            {

                 

                  if ($n=="age"){                      //加条件

                         if ($n>=18 && $n<=50)

                         {

                                $this->$n=$v;

                                }

                        

                         }

                         else{

                                $this->$n=$v;

                                }

                  }

                  //魔术方法  取变量值

                  function __get($n){

                         return $this->$n;

                         }                           

    $r = new Ren();

    $r->__set("age",12);           -----第一种赋值方法

    $r->age=20;                 ------第二种赋值方法

    $r->name = "咋";

    echo $r->name;               ------------直接调用

     2、继承    子类可以继承父类的一切

    特点:单继承 --------  一个类只能有一个父类,一个父类可以有多个子类

    Override   parent::run()

    3、(运行) 多态         区别: 重载表现的是编译多态

    当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写(override),该引用在调用方法时表现出来的不同

     子类可以代替父类

  • 相关阅读:
    SQL利用Case When Then多条件判断
    SQL 中LTrim、RTrim与Trim的用法
    SELECT 与 SET 对变量赋值的区别(存储过程)
    exec/sp_executesql语法
    SQLServer : EXEC和sp_executesql的区别
    使用系统监视器监视系统性能
    Centos6.5下OpenLdap搭建(环境配置+双机主从配置+LDAPS+enable SSHA)
    迁移与裁剪linux系统
    Windows Server 2008 R2远程桌面服务配置和授权激活(转)
    cookie、session、sessionid 与jsessionid(转)
  • 原文地址:https://www.cnblogs.com/LangZiXiYan/p/6761874.html
Copyright © 2011-2022 走看看