类与对象视频教程学习笔记

发布时间:2015-12-05 16:34 | 人气数:296
1 第一节

类、对象、属性、方法、类的继承
$shis 代表对象本身

2 第二节

php4下面,类里面定义的与类名相同的方法,为构造函数。在类实例化时自动执行。
构造函数带有()参数时,实例化必须带有参数,否则报错。

3 第三节

继承 extends
子类继承的属性和方法(包括构造函数)当子类有自己的构造函数时,父类构造函数在实例化时不执行。

4 第四节

动态调用与静态成员,默认定义为动态成员,成员前设置static为静态成员。实例化后的调用为动态调用。直接class::xx类成员即静态调用。
类属性:动态属性只能动态调用,静态属性只能静态调用。
类方法:动态方法与静态方法都能被静态与动态调用,但在静态调用时,类里面不能含有$this关键字。
类常量:类常量用CONST XX大写定义,属于类里面静态成员,不能用$this动态调用,不能改变其值,有继承与覆盖属性。

5 第五节

parent::XX在extends继承类中调用父方法,self::XX调用自身方法。
访问控制public 公开\protected 受保护的\private 私有的
子类覆盖父类的成员,私密程度只能持平或降低,就是要越来越开放。

6 第六节

PHP4版本类中函数名与类名相同即为构造函数,PHP5中构造函数名统一为__construct,实例化时自动运行,可带参数。
__destruct 析构函数,unset对象或程序结束时运行,不能带参数。
构造与析构函数遵循类的继承与覆盖原则,访问控制必须是public公开的。
final修饰类不能继承,修饰方法后不能被覆盖。
魔术方法:构造与析构函数也属于魔术方法
对象的赋值原理,对象之间赋值后,修改某一个对象的内容,赋值的对象内容也会改变。对象赋值是赋的对象的编号,与常量赋值不同。

7 第七节 魔术函数

serialize 序列化 与 unserialize 反序列化 操作的用处/序列化的时候只保存了类的属性与信息,没有保存完整的类。
__clone() 对象clone克隆时自动执行的魔术函数,执行的是克隆出来对象内的程序段。
__sleep() 在对象被序列化成字符串时激活执行
__wakeup() 字符串反序列化成对象时激活执行
__toString() 一个对象被当成字符串时自动激活运行该方法
__invoke() 一个对象被当成函数时自动激活运行该方法,php3以上版本可用。
__set_state() 配合var_export()函数和eval()函数使用
__call 在对象中调用一个不可访问方法时自动激活运行该方法(方法不存在或有私有权限等)
__callStatic 用静态方式中调用一个不可访问方法时自动激活运行该方法
在给不可访问属性(私有属性、受保护的和未定义的)赋值时,__set()会被调用。读取不可访问属性的值时,__get()会被调用。当对不可访问属性调用isset()或empty()时,__isset()会被调用。当对不可访问属性调用unset()时,__unset()会被调用。

8 第八节 抽象类和接口

抽象类 abstract 只可以被继承不能实例化的类,可以定义抽象方法(抽象类被继承后,其必须“覆盖”实现所有的抽象类中所定义的抽象子类方法)其它方法与属性与普通类定义相同。
接口 interface 接口中的方法必须是公开的。接口中可以定义常量,不能被覆盖,不能有重名的方法,没有属性,可以用extends继承。
implements 代替extends的作用,但implements可以多个接口。与抽象类一样,implements接口的类必须包含接口中的所有抽象类。
关键词:PHP类, 对象, phpchina学院, 视频教程, php笔记