面向对象(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();//调用类的方法
*/

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

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

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

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

原文地址:https://www.cnblogs.com/jinshui/p/5560421.html