PHP面向对象篇

1、结构化编程:程序用流程图和自顶向下的方法设计,围绕着要解决的任务来设计。
面向对象编程:建立对象模型,将问题域化为不同的对象去处理,围绕着问题域中的对象来设计。
2、对象:万物皆对象。
类:类是具有相同属性和行为的一组对象的集合。
类和对象的关系:类是对象的抽象,对象是类的实例。
3、创建类
①使用关键字 class 来定义一个类。
class Person{
//属性
public $id; //序号
public $name; //姓名
public $birth //生日
public $sex; //性别
//行为
public function setName($name){
$this->name=$name;
}
public function getName(){
$this->name;
}}
② 类中的一个成员变量的组成:访问修饰符(可以是public、private或protected )和成员变量名称(是一个有效的标识符,后面用分号结束。)。
4、创建对象
①使用 new 这个关键字创建对象 。
例如:$p = new Person(); ($p就是创建的对象),也可以这样创建:$p = new Person;但不推荐。
5、构造函数
构造方法又称为构造函数,是对象被创建时自动调用的方法,用来完成类初始化的工作。
代码:public function __constract($name, $birth, $sex){
$this->name=$name;
$this->birth=$birth;
$this->sex=$sex;
}
①构造函数和其它函数一样,可以传递参数,可以设定参数默认值。
②构造函数可以调用属性,可以调用方法。($this)
③构造函数可以被其它方法显式调用。
④构造函数方法 __constract是一个魔术方法(constract前面是两根下划线)。
⑤一个类中只能有且只能有一个构造函数。
6、析构函数
当某个对象成为垃圾或者当对象被显式销毁时执行。 代码:public function __destruct(){}
①可以被显式调用,但不要这样去做。
②是由系统自动调用的,不要在程序中调用一个对象的析构函数。
③不能带有参数。
④没有任何变量指向这个对象时,这个对象就成为垃圾。
⑤GC:垃圾处理机制,防止内存溢出。
⑥析构函数也是 __destruct也是一种魔术方法

 

1、封装
就是把对象的属性和行为结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节 。
优点:隐藏类的实现细节,让使用者只能通过事先定义好的方法来访问数据,可以方便的加入逻辑控制,进行数据检查,限制对属性的不合理操作。便于修改增强代码的可维护性 。有利于保证数据的完整性。
2、继承
继承就是实现对类的复用。继承而产生的类叫做子类,被继承的类,叫做父类,也被成为超类。
①PHP 是单继承的,一个类只可以继承一个父类,但一个父类却可以被多个子类所继承。 ②子类不能继承父类的私有属性和私有方法。
③在 PHP5 中类的方法可以被继承,类的构造函数也能被继承,但如果子类也定义了构造函数,则父类的被覆盖。
④继承使用关键字:extends.
3、重写
如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖( override),也称为方法的重写。
①当对父类的方法进行重写时,子类中的方法必须和父类中对应的方法具有相同的方法名称, 在 PHP5 中不限制输入参数类型、参数数量和返回值类型。(这点和 JAVA 不同)。
②子类中的覆盖方法不能使用比父类中被覆盖方法更严格的访问权限。
4、this
①PHP5 中为解决变量的命名冲突和不确定性问题,引入关键字“$this”代表其所在当前对象。
②$this 在构造函数中指该构造函数所创建的新对象。
③在类中使用当前对象的属性和方法,必须使用$this->取值。 ④方法内的局部变量,不属于对象,不使用$this 关键字取值。
5、parent
①用来引用父类的方法。
②parent::的追溯不仅于直接父类。
6、接口
接口(interface)是抽象方法和静态常量定义的集合。接口中没有其它类型的内容。 代码:interface 接口名{ public getName();
public setName($name);
}
①接口可以认为是特殊的抽象类,但是其实它本身是一个特殊的类别。
②关键字 interface
③在接口中只能定义公共的抽象函数方法和静态的常量。
④接口中的抽象函数方法可以省略public关键字,同时abstract关键字不需要书写出来
⑤类对于接口做实现,在实现了接口后,必须将接口中所有的函数都重新定义。
⑥接口可以扩展自其它的接口,一个接口可以多继承多个接口。
⑦在接口中的抽象方法只能是 public 的,默认也是 public 权限。并且不能设置成 private 或者 protected 类型。
7、抽象
抽象是从众多的事物中抽取出共同的、本质的特征,而舍弃非本质的特征。
①被抽象关键字abstract修饰的方法就是抽象方法。
②抽象类不一定包含抽象函数方法;但是包含抽象函数方法的类一定是抽象类。
③抽象类不能直接实例化。
④被抽象关键字abstract修饰的方法就是抽象方法。
⑤抽象方法只有声明部分,而不包含实现部分。
⑥继承了抽象类的普通类必须实现对应的抽象函数方法。
⑦一个类中, 只要有一个抽象方法, 这个类必须被声明为抽象类。
⑧抽象方法在子类中必须被重写。
8、多态

posted @ 2017-07-15 19:20  计算机英语  阅读(200)  评论(0编辑  收藏  举报