面向对象的三大特性

1.封装

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

   步骤:

  1. 将成员变量变为私有
  2. 做一个成员方法直接访问
  3. 在该方法里面加限制条件   

方法一:class ren

    {

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

      {

        $this->age=$n;

      }

    }

      function getAge()

      {

        return $this->age;

      }

$r=new ren();

$r->setAge (20);

echo $r->getAge();

方法二: .net中会有成员属性,但php中没有,php采用魔术方法来解决第一种方法中存在的问题。

  class  ren

  {

    private $name;

    private $age;

赋值  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;

    }  

    }

  }

$r=new ren();

$r->__set("age",12)  

2.继承

  子类可以继承父类的一切

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

  class ren                                                                              class china extends ren

    {                                                                                          {             

      private $name;                                                                          function run()

      function run()                                     既想调用子类又想调用父类时 {

                                                                                                                     parent::run()                                                                                                                                                                                                      echo"中国人跑步"

                                                                                                           }

 

     {                                                                                           }

      echo "跑步";

    }

  }   

3.多态

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

   

posted @ 2017-04-20 16:10  小牛吃青草  阅读(125)  评论(0编辑  收藏  举报