php面向对象编程笔记
*面向对象:编程时一直把对象放在心上
*面向对象编程:编程时数据结构通过对象的结构(属性,方法)进行储存。
*为什么用面向对象:
1对象的描述方法更贴合真实世界,利于大型业务的理解。
2用对象视角分析世界可以拉近程序设计和真实世界的距离。
*面向对象的实质:将生活中要解决的问题用对象(属性和方法)的方式储存。对象间通过方法的调用完成互动。(相当于打篮球:詹姆斯和韦德为两个对象,传球为他们的互动,而接球运球是自己对象调用自身方法完成的)
对象内部是高内聚的:1.对象只负责一项特定的职能 2.所有对象相关的内容都封装在对象的内部
对象对外是低耦合的:1.外部咳哟看见对象的一些属性(不是全部) 2.外部可以看到对象做某些事情。
类:将具有相似特性的对象归类到一个类里面,类里面定义了相似对象拥有的相同属性和方法。(是一个空架子,定义了数据怎么存,对象是将内容填上)
类的对象称为类的一个实例,类的属性和方法成为类成员。
例如:NBA球员就是一个定义的类。
类的实例化:
!!!实操:(写在<?php ?>中)
php文件的执行:打开cmd
结果如下:
构造函数的利用:
每一次new实例化的时候都会用类名后面的参数列表调用构造函数。
析构函数的利用:(程序结束时自发调用)
干涉:当对象不会再被使用时会触发。
故:
对象引用赋值 $ james2=&$ james;说明James2是James的影子,任一设置为null,会一起被删除。
而James1不会被删除
面向对象高级实践:
(1)继承
其中,NBA球员是人,故NBA球员是子类,人是父类。
将父类和子类关联起来
php中extends只能跟一个类的类名,单继承原则。
(2)访问控制
例子:NBA球员不想让别人知道自己的年龄。
设置一个private属性:发现在外界不能被访问:
但可在内部访问:
可以访问。
protected
而private不可被子类访问。
(3)静态成员
例子:
1.方法
2.方法
不用通过某个对象去实现更改president:
ps:静态属性和方法定义时在访问控制关键词后添加static关键字即可。
在类定义中使用静态成员时,用self::或者static::操作符即可,注意,在访问静态成员属性时::后需要跟$。
在类定义外部访问静态属性时用类名+::
子类中这样访问;
静态成员不需要创建对象就可以访问,所以不可以在静态方法中访问私有数据。如
(3)final成员
会修改父类的方法。
若为如下:
final关键字能够让这个方法不能再子类中重写。
所以!!!
(4)接口
interface关键字用于定义接口,接口里面的方法不需要有方法的实现
ps!!不能实例化接口
返回的是bool类型
(5)多态
(6)抽象类
介于接口和类之间
只用实现人和动物不同的吃(抽象方法)而不需要再实现相同的呼吸(非抽象的方法)
继承抽象类的子类需要实现抽象类中定义的抽象方法
文章来源: blog.csdn.net,作者:风风.,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_52594286/article/details/115028588