结构化编程
在程序设计的早期,程序用流程图和自顶向下的方法设计。采用这种设计方法,程序员会将一个大的问题分解成更小的任务,然后为每个更小的任务编写一个过程(或函数)。最后,程序员会编写一个主过程来启动程序流程,随后根据程序流程走向,调用想要的其它过程。这种类型的程序设计被称为结构化编程。
面向对象编程
20世纪70年代以后,面向对象编程(Object Oriented Programming,简称OOP)开始流行。OOP采用了一种完全不同的方法来开发计算机应用程序。在这种方法中,程序不是围绕着要解决的任务来设计,而是围绕着要解决的问题中的对象来设计。
把每个独立的功能模块抽象成类形成 对象,由多个对象组成这个系统,这些对象之间都能够接收信息、处理数据和向其它对象发送 信息等等相互作用。就构成了面向对象的程序。
建立对象模型,将问题域化为不同的对象去处理。
结构化和OO的区别
1.在结构化编程中,程序围绕着要解决的任务来设计。
2.面向对象编程中,程序围绕着问题域中的对象来设计。
什么是对象?
对象是某一类的具体化实例,每一个类都是具有某些共同特征的对象的抽象。
万物皆对象
什么是类?
具有相同或者相似结构、操作和约束规则的对象组成的集合。
类和对象的关系?
类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对象的抽象就是类.类描述了一组有相同特性(属性)和相同行为(方法)的对象。
类是具有相同属性和行为的一组对象的集合,在软件系统中,我们用类来模拟现实生活中的实体。
类和对象
1.类(Class)是用来描述一个对象(Object):
2.类描述了每个对象应包括的数据
3.类描述了每个对象的行为特征
4.类是对一类事物描述,是抽象的、概念上的定义;
5.对象是实际存在的该类事物的每个个体,因而也称实例(instance)。
6.创建对象的过程称为 创建对象 也称为实例化。
创建类
PHP 中使用关键字 class 来定义一个类。类的命名一般使用首字符大写,而后每个单词首字符大写连接的方式方便阅读。
class Person{
public $id; //序号
public $name; //姓名
public $birth; //生日
public $sex; //性别
}
类中的一个成员变量由如下部分组成:
访问修饰符。可以是public、private或protected
成员变量名称。成员变量名称必须是一个有效的标识符,后面用分号结束。
属性和行为
class Person{
//这里是属性
public $id; //序号
public $name; //姓名
public $birth; //生日
public $sex; //性别
//这里是行为
public function setName($name){
$this->name=$name;
}
public function getName(){
$this->name;
}
}
创建对象
$p = new Person();
使用 new 这个关键字创建对象
注意:
$p = new Person();也可以写成 $p = new Person;但不建议使用后面的这种方式。
构造函数
构造方法又称为构造函数,是对象被创建时自动调用的方法,用来完成类初始化的工作。
构造函数和其它函数一样,可以传递参数,可以设定参数默认值。
构造函数可以调用属性,可以调用方法。
构造函数可以被其它方法显式调用。
public function __construct($name, $birth, $sex){
$this->name=$name;
$this->birth=$birth;
$this->sex=$sex;
}
析构函数
析构函数:当某个对象成为垃圾或者当对象被显式销毁时执行。
public function __destruct(){}
destruct() 析构函数,是在垃圾对象被回收时执行。
析构函数也可以被显式调用,但不要这样去做。析构函数是由系统自动调用的,不要在程序中调用一个对象的析构函数。析构函数不能带有参数。
GC(Garbage Collector)
在 PHP 中,没有任何变量指向这个对象时,这个对象就成为垃圾。 PHP 会将其在内存中销毁。这是 PHP 的 GC(Garbage Collector)垃圾处理机制,防止内存溢出。当一个 PHP 线程结束时,当前占用的所有内存空间都会被销毁,当前程序中的所有对象同样被销毁。