PHP:面向对象编程基础知识

面向对象编程中有两个重要术语:”类“和”对象“。类是对某个事物的概括定义,可以看作是一个蓝图。对象则是对某个事物的具体实现,可以看作是依照类建立起来的实例。我们首先定义类,然后根据需要实现它们为对象。

面向对象编程的原则之一是”模块化“:把应用程序拆分为明确的子部分。Web站点需要做很多事情:与数据库交互、处理表单、发送电子邮件、生成HTML代码等等,这些都可以作为一个模块,一个类。

与”模块化“相关的概念是”抽象“:类的定义很宽泛。举个例子,我们应该定义一个类来实现与非特定数据库的连接,而不是定义一个类来与特定数据库连接。以这个类为基础,通过使用”继承“和”重写“,再为MySQL定义更专用的类。

面向对象编程的另一个原则是”封装“:分隔和隐藏工作的完成方式。与”封装“一并提起的概念是”访问控制“和”可见性“,它们表示类中组件的可见性。

1、定义一个类:
class Rectangle {
		public $width = 0;
		public $height = 0;

		function setSize($w, $h) {
			$this->width = $w;
			$this->height = $h;
		}


		function getArea() {
			return ($this->width * $this->height);
		}
	}

注:一个类中的$this变量总是指向该类的当前实例(也就是包含进来的当前实例)。
2、创建对象:
$width = 40;
$height = 30;
	
$r = new Rectangle();

$r->setSize($width, $height);

echo "面积是:".$r->getArea();

看一下运行结果:

3、创建构造函数:
构造函数是一个特殊方法,它与标准方法有三个区别:
1).其名称永远是__constructa()
2).当创建对象时,它总是会被立即调用
3).它不能包含return语句
示例程序:
class Rectangle {
	public $width = 0;
	public $height = 0;

	function __construct($w, $h) {
	        $this->width = $w;
		$this->height = $h;
	}


	function getArea() {
		return ($this->width * $this->height);
	}
}
$width = 40;
$height = 30;

$r = new Rectangle($width, $height);

echo "面积是:".$r->getArea();

运行结果:
4、创建析构函数:
构造函数是在对象创建时自动被调用,而析构函数是在对象销毁的时候自动被调用。在公开删除对象的时候,就会发生下面这种情况;
$obj = new ClassName();

unset($obj);//Calls destructor,too.
或者在脚本结束的时候(这时候PHP会自动释放变量所使用的内存)也会发生这种情况。
析构函数的定义如下:
class ClassName {
    function __destruct() {
        //Codes Here
   }
}


析构函数不能接收任何参数。
示例程序:
       class Rectangle {
		public $width = 0;
		public $height = 0;

		function __construct($w, $h) {
			$this->width = $w;
			$this->height = $h;
		}

		function __destruct() {
			echo "析构函数被调用";
		}


		function getArea() {
			return ($this->width * $this->height);
		}
	}


	$width = 40;
	$height = 30;

	$r = new Rectangle($width, $height);

	echo "面积是:".$r->getArea()."<br>";


看一下运行结果:

5、使用UML设计类:
UML创建一个类的图表来图形化地展示一个类:每个类的框图分为三个部分,类名位于最上层,中间层用于标识类的属性,最下层列举类的方法。
对属性来说,属性的类型被列举在属性名称的后面,比如:
userId:number
userName:string

示例UML图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值