面向对象基础

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.执行时间特殊:在造对象时就执行了构造方法

posted @ 2016-12-11 16:09  悦~  阅读(163)  评论(0编辑  收藏  举报