面向对象的三大特征:封装 继承 和 多态
1、4个魔术方法 __get __set __isset __unset对象的继承特性几个关键字 final const static 关键字封装:在面向对象的使用过程中经常用到,某些成员禁止的对象的外部进行访问,这种情况下需要对成员进行封装.常用的关键字private.成员属性私有化:private $sex=’值’;成员方法的私有化:private function 方法名(){}私有化特征:1.一旦某个成员被私有化(private),那么在对象的外部不能够被修改和访问2.私有化成员在对象的内部可以使用$this 进行访问3.声明关键字private 不能够和var 关键字同时使用访问私有成员的错误提示:\//访问私有成员属性Fatal error: Cannot access private property Jingjing::$sex in D:\AppServ\www\72\object2\Jingjing.class.php on line 39访问私有成员方法Fatal error: Call to private method Jingjing::sa() from context '' in D:\AppServ\www\72\object2\Jingjing.class.php on line 40魔术方法3 __get触发时机: 在访问一个私有化成员属性的时候自动触发.作用: 1.屏蔽错误 2.返回私有成员属性的值参数: 1个参数返回值:可有可无 (如果有返回值就是最后成员属性的值)注意事项: 对非私有化成员无效魔术方法4 __set触发时机:在对私有成员属性进行修改的时候自动触发.作用:1.屏蔽错误 2. 对私有成员属性进行设置值参数:2个 1 修改的私有成员属性名 2 要修改的值返回值:不需要注意事项:对非私有成员无效,在进行操作之前一定要进行判断.魔术方法5 __isset()触发时机:对私有化成员属性 进行isset判断时自动触发作用: 代替对象外部的isset 对私有成员进行isset判断参数:1个 判断的私有成员属性名返回值: true或false 一般使用isset(属性)作为返回值注意事项: 对非私有成员无效,返回值尽量使用isset判断的结果魔术方法 6 __unset()触发时机:对私有成员属性进行unset操作的时候自动触发.作用:代替对象外部的unset 对私有成员进行unset操作参数:1 要删除的私有成员属性名返回:不需要注意事项:对非私有成员无效.在进行操作之前一定要进行判断.
2、继承特性:在面向对象的开发过程中,2个类之间可能存在代码大部分重复的情况,为了解决这种问题,引入继承概念,一个类继承另一个类之后就具备该类的所有成员(目前这么记即可,私有无法继承)父类:被其他类继承的类称之为父类,也叫做基类子类:继承其他类的类成为子类,也叫做派生类继承的实现方式:class 子类名 extends 父类名{//子类独有的成员属性//子类独有的成员方法}继承操作的特征和注意事项:1.子类继承父类,即具备父类中的虽有成员属性和方法(私有除外)2.子类可以具备自己独有的成员属性和方法3.构造方法可以被继承,注意传参问题,继承而来的构造方法需要多少参数,实例化对象时必须传入指定的参数4.在类中具有继承关系的类,子类中可以重载父类中的方法5.构造方法也允许重载.而且在子类中的构造方法中可以使用parent::__construct() 来调用父类的构造方法,为了把继承而来的属性初始化. (关键字 parent代表父类)6.在子类中可以使用parent::$成员属性名来访问父类中的成员属性(有条件限制:必须是static声明的属性)7.在子类中可以使用parent::成员方法名()访问父类中的成员方法(有条件显示:必须是static声明的方法)8.逻辑问题:继承的时候不要瞎继承,一定要具有合理的逻辑关系,不能使用人类来继承鸟类,永远不会变成鸟人的~~~关于PHP的继承方式:封装关键字:private 私有化protected 受保护的public 公开的关于var 关键字的问题:var 关键字属于public关键字的一种,和public 的功能类似,公开的不受保护和封装的.var 关键字只能修饰成员属性不能用于修饰成员方法var 一般只用在学习当中,其余情况全部建议使用public 代替(public在修饰成员方法时,可以忽略不写,推荐 写一下)继承等级的问题(继承和关键字的问题)


3、封装关键字private 1protected 2public 3子类中重载父类的方法,子类方法的封装等级要大于等于父类方法封装等级其他关键字final final最终的意思作用:1.在class前使用该关键字修饰类 当前类不允许被继承2.使用final修饰的成员方法,禁止被重载const 常量(非重点)1.在类中声明常量需要使用const关键字2.声明常量不允许使用$.3.声明常量要在声明时赋值常量的访问:类内部:类名::常量名self::常量名类的外部:类名::常量名在子类中:类名::常量名parent::常量名$this 表示当前对象 必须实例化才会有该关键字parent 表示父类self 表示当前类