面向对象基础
1、两个圆,求两个圆相叠的阴影面积
//面向过程方式
$r1 = 10; //定义变量 $r2 = 5; $mianji = 3.14*$r1*$r1-3.14*$r2*$r2; //圆的公式 echo $mianji;
//面向对象
(1).将圆抽象为一个类
class Yuan
{
//类的成员
var $banjing; //圆类的一个成员变量
//面积,圆类的一个成员方法
function MianJi()
{
return 3.14*$this->banjing*$this->banjing; //$this关键字 在类里面代表该对象
}
}
(2).实例化对象
$yuan = new Yuan(); $yuan->banjing = 10; //调成员-> $yuan->MianJi(); //调用方法
回到题中:
//造大圆 $maxyuan = new Yuan(); $maxyuan->banjing = 10; //调用成员 //造小圆 $minyuan = new Yuan(); $minyuan->banjing = 5; //调用成员 echo $maxyuan->MianJi()-$minyuan->MianJi(); //调用方法
计算长方形的面积
class Fang
{
var $chang; //成员变量
var $kuan; //成员变量
function Mian()
{
return $this->chang*$this->kuan; //this关键字
}
}
//造长方形
$changfang = new Fang();
//调用成员
$changfang->chang = 4;
$changfang->kuan = 6;
//调用方法
echo $changfang->Mian();
2、两个数之间的运算
(抽象为一个类)
class YunSuan
{
public $a; //类的成员变量
public $b;
//类的成员方法
function jia()
{
return $this->a+$this->b;
}
function jian()
{
return $this->a-$this->b;
}
function chen()
{
return $this->a*$this->b;
}
function chu()
{
return $this->a/$this->b;
}
}
(实例化对象)
$y = new YunSuan(); $y->a = 10; //调用成员 $y->b = 5; //调用成员 echo $y->jian(); //调用方法 echo $y->jia(); //调用方法 echo $y->chen(); //调用方法 echo $y->chu(); //调用方法
3、访问修饰符
(1)public (默认)公有的,任何地方都可以访问
(2)protected 受保护的,只能在该类或是该类中的子类中访问
(3)private 私有的,只能在该类中访问
4、构造函数(构造方法,就是类名):专门用来造对象的
上面的题进行构造函数,如下:
第一种:可以在类中加一个构造函数,然后实例化时在函数中赋值就可以
a.构造函数:在造对象时就执行了
function __construct($a1,$b1) //__双下划线开头的方法在面向对象中称为魔术方法
{
$this->a = $a1;
$this->b = $b1;
}
第二种:直接在类中赋值
b.可以直接修改默认值也可以 public $a=10; public $b=5;
1.写法特殊:方法名特殊
2.执行时间特殊:在造对象时就执行了构造方法

浙公网安备 33010602011771号