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; //输出阴影面积