---恢复内容开始---
面向对象(一切皆对象)
一,类
类是由众多对象抽象出来的
定义类:关键词 class,this
class Ren(定义的名字)
{
private $name="张三";(抽象出来的名字,这是一个成员变量)
private $age=10;(同样是成员变量)
private $sex;
【名字是随便取的】
public function eat ()//成员方法{
echo $this->name;//this 代表该对象
}
}
function__destruct(){
echo"该对象销毁了"
}//析构函数(自动调用)
function__construct()【这里要么和类名一样,要么就用construct】{
第一种方法 $this->sex="男"//这里就已经相当于赋值了
第二种方法 $this->sex=$s; //这里是调用函数
}
//构造函数,主要用来进行变量的初始化,就是造对象。写法特殊,执行时间特殊
//实例化
$r = new Ren();
//这是实例化了一个人
$r->name = "张三";//调用成员变量
(谁调用this就是谁)
$r->age=1;
$r_>eat();//调用成员方法
(object这就代表一个对象)
$r1=new Ren();//实例化了第二个人
$r2=new Ren();//实例化了第三个人
(在同一个类下,可以无限的实例化对象)
//访问修饰符
pudlic 公有的(在任何地方都可以访问)
protected 受保护的(只能在该类或该类的子类里访问)
private 私有的(只能在该类里访问,就是只能 在该类的大括号里访问)
//成员变量一般都是私有的,成员对象一般都是公有的;
二,对象
对象是由类实例化出来的
三,函数重载 编译多态
overload(可以通过不同的数量的参数来实现不同的功能)
public void Test(string s)
{echo"1111";}
public void Test(int a)
{echo"int";}
public void Test(string s , srting c)
{echo "222";}
这样的同名函数下,不同的属性就会形成重载。
四,栗子~
问题:有两个同心圆,r1半径为10,r2半径为5;求r1-r2;
//面向过程
$r1 = 10;
$r2 = 5;
$mj = 3.14*$r1*$r1-3.14*$r2*$r2;
echo $mj;
//面向对象
class Yuan
{
public $r; //半径
//构造函数
function __construct($bj)
{
$this->r = $bj;
}
//返回圆的面积
function mianJi()
{
return 3.14*$this->r*this_>r;
}
}
$y1 = new Yuan(10);
$y2 = new Yuan(5);
$zmj = $y1->mianJi()-$y2->mianJi();
echo $zmj;
---恢复内容结束---