首页 > 技术文章 > php面向对象基础(一)

zhaohui123 2017-04-17 15:44 原文

1.面向过程
2.面向对象
3.类与对象
(1)类是由众多对象抽象出来的东西
(2)对象是由类实例化出来的东西

(I)定义类
class Ren
{
     public $name="张三";  //成员变量,成员name是属于对象的
    public $age=10;
    private $sex;
    
     // 构造函数,无论写不写都有,主要用来进行变量的初始化
     // 写法特殊,执行时间特殊
     function __construct($s)
     {
        $this->sex=$s;
     }
     

      //函数重载 overload(其他语言当中的,php没有) 编译多态
    /* public void Test(string s)
     {
         echo "111";
     };
      public void Test(int s)
     {
         echo "int";
     };
      public void Test(string s,string c)
     {
         echo "222";
     };*/   
    public function eat()  //成员方法
    {
       echo $this->name;  //this代表该对象,谁过来调用this就代表谁
    }

    //析构函数
    function __destruct()
    {
        echo "该对象销毁了";
    }
};

(II)实例化
$r = new Ren("女");  //实例化出一个人
$r->name = "张三";  //调用成员变量
$r->age = 1;
$r->eat();  //调用成员方法

$r1 = new Ren();
$r2 = new Ren();

var_dump($r);

(III)访问修饰符
public 公有的
protected 受保护的,只能在该类或该类的子类中访问
private 私有的,只能在该类里边访问
成员变量一般都是私有的,成员方法一般是公有的

例题

大圆半径10,小圆半径5,求阴影面积

 

方法一.面向过程
$r1 = 10; //定义变量
$r2 = 5;
$mianji = 3.14*$r1*$r1-3.14*$r2*$r2; //圆的公式
echo $mianji;

方法二.面向对象
class Yuan
{
  public $r; //成员变量
 
  function __construct($bj)  //构造函数
    {
        $this->r = $bj;
    }
 
  function mianji()  //成员方法
  {
    return 3.14*$this->r*$this->r;  //this代表该对象,谁过来调用this就代表谁
  }
};
$y1=new Yuan(10);
$y2=new Yuan(5);
$yymj=$y1->mianji() - $y2->mianji();

echo $yymj; //输出阴影面积

推荐阅读