php面向对象编程笔记

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

(完)