为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
PHP面向对象编程_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

PHP面向对象编程

Peter 其它
难度初级
时长 3小时14分
  • 相同的一行代码,对于传入不同的接口的实现的对象的时候,表现是不同的,这就是多态 多态:不需要知道对象属于哪个类,只要判断该对象的类是否实现接口,就能实现调用,相同代码实现不同结果,这就是多态
    查看全部
  • 接口就是把不同类的共同行为进行定义,然后再不同的类里面实现不同的功能 、interface关键字用于定义接口,接口里面的方法不需要有方法的实现 2、implements关键字用于表示类实现某个接口 3、实现了某个接口之后,必须提供接口中定义的方法的具体实现 4、不能实例化接口 5、利用instanceof关键字来判断某个对象是否实现了某个接口 6、可以用extends让接口继承接口 7、当类实现子接口时,父接口定义的方法也需要在这个类里面具体实现 8、类的方法必需有实现,接口的方法必需为空 9. 可以用instanceof关键字来判断某个对象是否实现了某个接口 var_dump(变量 insranceof 接口) 10. interface 接口名{ function eat($food){} } class 类名 implements 接口名 {} http://img1.sycdn.imooc.com//587895670001080212800720.jpg 可以用instanceof关键字来判断某个对象是否实现了某个接口,例:$obj instanceof eat,这个表达式返回bool型; http://img1.sycdn.imooc.com//582844b900018c6e12800720.jpg 可以用extends继承父接口,当implements某子接口时,要同时实现父接口的方法。 http://img1.sycdn.imooc.com//578e103d00013f4d12800720.jpg
    查看全部
  • 1.parent关键字 可以可用于 调用父类中 被子类重写的方法 2.self关键字 可以用于访问 类自身的 成员方法,静态成员(静态属性+静态方法) 和 类常量;但 不能用于 访问类自身的 非静态属性(非静态属性 会根据 不同的对象的赋值 而不同,非静态方法 不存在这个问题)!!! self 在 使用常量时 不需要在 常量const名称 前面添加$符号 3.static::关键字用于访问类自身定义的静态成员,访问静态属性时 需要在属性 前面 添加$符号。 4.常量属性const 不能使用对象访问,仅能使用类访问,在类本体内 可以使用“self::常量名”,在类本体外 可以使用“类名::常量名”
    查看全部
  • 简单来说,调用父类方法使用 parent::func();,调用静态方法或属性使用 static::$var;如果访问父类静态方法,则任选其中一种方式,其他情况都可以使用 $this->func() 或 $this->var 进行方法和属性的调用。self 相比 this 只是能够访问静态属性,但是static也可以访问静态属性,self的意义就不大了。 this = 属性[动] + 方法[静/动]; self = 属性[动] + 方法[静/动]; static = 属性[静] + 方法[静]; parent = 父属性[静] + 父方法[静/动] 、parent关键字可以调用父类被子类重写 的方法;<br> 2、self关键字可以用于访问自身的成员方法,也可以访问自身的静态成员和类常量;不能用于访问类自身的属性;使用 常量的时候不需要在常量名称前面添加$符号; 3、static关键字用于访问类自身定义的静态成员,访问静态属性时需要在属性前面添加$符号
    查看全部
  • override是覆盖,这里是子类方法覆盖父类方法,这是覆盖。重写有重载和覆盖双层意思。应该是系统判定相同的方法名称称、相同的参数列表、相同的返回类型,所以才为这个。
    查看全部
  • 在子类中编写和父类同名的方法,会对父类的方法进行重写,调用时是调用子类的方法。有关 键字final的方法不可以重写,有final关键字的类不可以被继承 1.重写父类方法:在子类中编写和父类完全一致的方法名 2.在父类方法前添加final关键字(public之前)能让其不能在子类中被重写 3.在类的class前添加final关键字能让此类不能被任何类继承 final class Class(); //禁止重载类 final public function(); //禁止重载方法 添加final关键字的类或方法,只是不能被重写或继承,但可以调用 备注:主要看方法名,不关心参数 <?php class Car1 { public function A1(){ echo "方法1"; } public function A2(){ echo "方法2"; } } // 继承类 class Car2 extends Car1{ public function A1(){ echo "方法1被重定义"; } } // 实例化 $x = new Car2(); $x->A1(); // 纯PHP代码不建议添加结束标记 override是覆盖,overwrite是重写,覆盖是子类和父类的函数名称和参数都必须相同,重写是函数名称相同,参数有相同和不同之分。 子 重载为 同名不同参,实际是两个方法 重写 是同名了且同参,方法覆盖了。 此处为重写。
    查看全部
  • 类的静态属性
    查看全部
  • 世间万物皆对象
    查看全部
  • static静态成员的访问不受类的约束, 方法:直接用 classname::static_function 调用,不需要实例化; 属性:采用self,parent,static在静态方法内部调用静态属性;
    查看全部
  • A. 1.this 表示 当前对象 this->name; //不用加 $ 符号 2.self 表示 当前类 或 当前对象所属的类 self::$name; //需要加 $ 符号; 3.static 表示 当前类 或 当前对象所属的类 中的静态成员 static::$name; //需要加 $ 符号 4.parent 表示 当前类的父类 或 当前对象所属类的父类 parent::$name; //需要加 $ 符号 5.静态成员 属于 类,而不属于 任何对象; 6. this, self, static, parent都只能在类中使用 7.双冒号操作符(“::”)即作用域限定操作符 用以说明”::”前为 作用域关键字 可以访问静态成员(静态属性+静态方法)、const常量、类中重写的属性与方法 和 非静态方法。 B. 1.静态属性用于保存类的公有数据 2.静态方法里面 只能访问 静态属性(静态方法 属于类 而不属于具体的对象,所以在 静态方法中 访问 非静态属性,系统会无法辨认 访问的是 哪个对象的非静态属性) 3.静态成员不需要实例化对象就能访问( 静态成员 属于 类,而不属于 任何对象;) 4.类的内部可以通过 self 或者 static 关键字访问自身静态成员 5.可以通过 parent 关键字访问 父类的静态成员 6.可以通过类的名称在类定义外部访问静态成员
    查看全部
  • 面向对象--访问控制 面向对象的访问权限 public共有的类成员,可以在任何地方被访问 定义该成员的类(自身)、该类的子类、其他类 protected受保护的类成员,可以被其自身以及其子类访问 protected private私有的类成员,只能被自身访问 private
    查看全部
  • 调用clone时自动调用__clone()方法 $james = new NbaPlayer(); //$ja0 对应内存地址(假设为 address0 )中存储的是 james对象的标识符 $james2 = clone $james; //当希望生成一个真正独立存储的 NbaPlayer() 对象,但新对象的 所有数据 都和 $james 对象中的 相同时,使用关键字 clone 当class NbaPlayer()中定义了 __clone()方法 后,使用clone关键字时,系统将调用 用户定义的__clone()方法 (此时可以对clone 后生成的新对象的属性进行修改)
    查看全部
  • 实现了某个接口之后,必须提供接口中定义的方法的具体实现 (这样可以限定 新定义的类 必须实现部分方法,在大型项目中 方便协调) 利用instanceof关键字来判断某个对象是否实现了某个接口: 当不知道 一个对象 实现的是哪一个类时; 当不知道 对象 继承的类 中是否有某个方法时;
    查看全部
  • 1.parent关键字 可以可用于 调用父类中 被子类重写的方法 2.self关键字 可以用于访问 类自身的 成员方法,静态成员(静态属性+静态方法) 和 类常量;但 不能用于 访问类自身的 非静态属性(非静态属性 会根据 不同的对象的赋值 而不同,非静态方法 不存在这个问题)!!! self 在 使用常量时 不需要在 常量const名称 前面添加$符号 3.static::关键字用于访问类自身定义的静态成员,访问静态属性时 需要在属性 前面 添加$符号。 4.常量属性const 不能使用对象访问,仅能使用类访问,在类本体内 可以使用“self::常量名”,在类本体外 可以使用“类名::常量名”
    查看全部
  • php 5之前不支持 final 关键字 1.子类中 编写和 父类方法名 完全一样的 方法(不论 参数表 是否一致,只要 方法名 相同),可以完成对 父类方法 的重写 2.在方法名 前 添加final关键字 能够让这个方法 不能在 子类中 重写 ( final public function test1() ) 3.在 class之前 添加 final关键字 可以 禁止 这个类 被 其他类 继承 ( final class BaseClass )
    查看全部

举报

0/150
提交
取消
课程须知
1、本门课程是立志想成为优秀程序员的必修课 2、基本概念部分适合所有人学习 3、实践部分则需要有基本的PHP知识,这样会更加有利于你对面向对象的理解和掌握
老师告诉你能学到什么?
1、面向对象的基本概念 2、面向对象的基本思路 3、面向对象的基本原则 4、类的概念和PHP实践 5、继承的概念和案例实践 6、接口的概念和案例实践 7、多态的概念和案例实践 8、PHP中的魔术方法基本实践
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!