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

来源:互联网 发布:数据库集群是啥意思 编辑:程序博客网 时间:2024/06/09 14:04

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

面向对象编程的原则之一是”模块化“:把应用程序拆分为明确的子部分。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:numberuserName:string

示例UML图:

0 0
原创粉丝点击