• 面向对象(OOP):类和对象



    类和对象
    类是对象的抽象化,对象是类的实例化
    class ren
    {
    成员变量
      var $shengao;
      var $tizhong;
      var $name;
      var $sex;
    成员属性---php语言没有
    成员方法
      function Eat()
        {
          echo "用手吃饭";
        }
      function zoulu()
        {
          echo "用脚、跑步、不行";
        }
    }
    创建对象,必须有类
    $wo=new ren();//调用类
    $wo->name="张三";//赋值
    echo $wo->name."<br>";//取值

    例题:求两个半径不同的圆的所夹阴影部分的面积
    解法一:面向过程

    $R=10;
    $r=5;
    //大圆面积
    $S=3.14*$R*$R;
    //小圆面积
    $s=3.14*$r*$r;
    //阴影面积
    $sss=$S-$s;
    echo $sss;

    解法二:面向对象

    class circle
    {
      var $r;//此半径属于circle这个类
      function S()
      {    
        $a=3.14*$this->r*$this->r;//$this->r 代表这个对象的半径
        return $a;//只能返回值,不可以返回其他
         }
    }
    //类实例化对象
    $dayuan=new circle();//对象调用类,类里面有的才能调用
    $dayuan->r=10;
    $dm=$dayuan->S();
    
    $xiaoyuan =new circle();
    $xiaoyuan->r=5;
    $xm=$xiaoyuan->S();
    
    echo ($dm-$xm); 
    
    //以后解题优先考虑面向对象,即本题涉及到两个“圆”(对象),只有一类“圆”,创建类circle。

    练习:

    /*class ren
    {    var $name;
        var $sex;
        var    $yuyan;
        
        function chifan()
        {
            echo "yong";
        }
        function yudong()
        {
            echo "跑";
        }
    }
    $r=new ren();//创建对象
    //$r->name="哈哈";//赋值
    //echo $r->name;//取值
    var_dump($r);//检查输出
    $r->chifan();//调用类的方法
    $r->yudong();//调用类的方法
    */

    面向对象相比面向过程的优势:

    面向过程就是一步一步的解决问题,具体、看重细节;

    面向对象从大局分类、分层、分步解决问题,重点是类;

    相对面向过程而言,面向对象写的代码可能更多,但建好类以后,解决问题的思路更清晰,易于维护(修改/扩展);

  • 相关阅读:
    Linux下的压缩zip,解压缩unzip命令具体解释及实例
    编程验证哥德巴赫猜想
    HDU 4735 Little Wish~ lyrical step~(DLX , 反复覆盖)
    The 2013 South America/Brazil Regional Contest 题解
    【 D3.js 高级系列 — 2.0 】 捆图
    怎么让百度收录站点的图片呢?
    ios-UI1
    oc85--利用宏定义简化单例
    oc84--单利
    oc83--自定义类实现copy方法
  • 原文地址:https://www.cnblogs.com/jinshui/p/5560421.html
Copyright © 2020-2023  润新知