PHP面向对象的基本概念
(一)、面向对象的基本概念
1、什么是对象
l 面向对象英文是Object Oriented,拆开来就是
-面向(Oriented)
-对象( Object )
概念:什么是对象
l 世间万物皆对象
n 一切可见之物
u 一个老人,一台笔记本
u 一个桌子
u 一个球员
u 一个女主播
n 一切不可见之物也可以是对象
u 一个空气里的细菌
u 一个抽象的概念
l 抽象,顾名思义,就是抽掉了具体形象的东西。如:人,就可以说是一个相对抽象的概念,因为一个具体的人有性别、年龄、身高、相貌、社会关系等具体特征,但抽象的“人”就是不包含这些具体特征的一个概念,因此说它是抽象的;而具体的人的概念应该是张三、李四等。 因此说,抽象概念一般是指的每一类事物,而不是某一个事物。
2、对象的组成
l 对象组成包含两部分
n 对象的组成元素
u 是对象的数据模型,用于描述对象的数据
u 又被称为对象的属性,或者对象的成员变量
n 对象的行为
u 是对象的行为模型,用于描述对象它能做什么事情
u 又被称为对象的方法
3、对象的特点
l 每一个对象都是独一无二
n 比如说张三就是张三,李四就是李四,你家的桌子就是你家的不是别人家的,而且你家卧室的桌子不是客厅的桌子,这些都不能混为一谈
l 对象是一个特定的事物,它的职能就是完成特定的功能
n 比如桌子,它就是一张桌子,它就是为了满足你吃饭的时候的需求,你可以把饭菜盛饭到上面,这样吃起来就方便
n 再比如球员,它的职能就是传球,运球,投篮,扣篮,这些就是他们要做的事情
l 对象它是可以重复使用的
n 比如球员詹姆斯,他打完一场篮球后,还可以继续打,不是说打完一场就结束了,不能再打了
n 再比如,吃饭的桌子,你吃完了,下次再吃的时候,还可以继续使用这张桌子,所以它是可以被重复使用
n 再比如,一辆车子,它从北京开到到广州,不是说它开到广州就报废了,而是可以往返很多次
4、什么是面向对象
l 面向就是指在编程的时候,一直把对象放在心中
n 比如你面向墙壁,你一直看到的就是墙壁,
n 比如老师讲课,它面向是谁,是学生,所以老师上课的时候要一直面对的是学生
n 面向对象,就是编程的时候,心里一直面向着对象
l 面向对象编程,指的就是在编程的时候,把一切数据模型转换成对象的结构进行存储,
n 实际上就是编程的时候,我们把所有的数据结构,转换成属性和方法这种对象的形式进行存储,我们把这种方式就叫做面向对象编程
5、为什么要使用面向对象
对象的描述方式更加贴合真实世界,更加方便我们理解大型项目的业务逻辑
n 我们早期的时候是面向过程编程,就是每天讲的都是代码的组织结构,但是有了对象的描述方式后,我们还可以说,我写的就是一个一个的对象,然后他们之间有各种互动
n 在程序设计的过程当中,这种面向对象的开发方式拉近了代码和真实世界的距离
6、面向对象的实质
l 做任何事情我们都需要观察事物的本质,那么面向对象的实质是
n 把生活中要解决的问题,都通过对象的方式进行存储,什么是对象方式的存储,就是把数据结构存储为对象的属性和方法
u 比如我们要做一个家居软件,里面所有的家居我们都可以用对象的属性和方法进行表示出来,比如它的大小,颜色,尺寸 等等
方法有哪些呢,比如有的家居是可以折叠的,这个折叠就是它的方法
u 再比如一个球员,它的属性有什么,身高,年龄,团队,肤色等等,那方法呢,就比如运球,传球,投篮,扣篮等这些基本的技能就是球员的方法
l 对象和对象之间的互动,就是通过方法的调用来完成,这个有点抽象,后面我们会通过实例进行详细的剖析
n 举例
u 比如我从教室门口,走了大概10步,来到了讲台中间,紧接着我看向张三,然后问了一个问题,“你好,请问你叫什么名字”,最后张三回复我:“你好,我叫张三”
这个图里,对象分别是老师,学生,首先是老师调用了他自身的方法,方法的顺序依次是 走,看,问,紧接着调用了张三对象的回复方法
7、面向对象的基本思路
l 第一步:识别对象
-任何实体都可以称为对象
l 第二步:识别对象的属性
n 对象里面存储的数据都是属性
n 对于不同的业务我们要关注的属性是有所不同的
u 比如上面的场景中,我们要用面向对象的方式把它还原,那么关注的属性就是名字,身份,方法就是3个,走,看,问
u 比如女主播和球员都是人,但是因为业务不同,所以我们关注的属性和方法也会不同,比如女主播,我们更关注的是它的艺名,还有唱歌,球员我们更关注的是他是哪个球队的,以及他球技
l 第三步:识别对象的行为
n 比如说对象自己数据的改变都是行为
n 对象和外部之间的交互
8、面向对象的基本原则
l 对象内部是高内聚的
n 只包含一项特定的职能(职能是可大可小)
u 比如说球员,他只负责打球,女主播只负责唱歌,虽然他们还可以做其他事情,但是因为业务不同,所以职能不同,然后其他的职能就没有包含进来
n 所有对象相关的内容都封装在对象内部
l 对象外部它是低耦合的
n 外部的世界只能看见对象的部分属性,看不到全部的
n 外部世界只能看见对象的部分行为,看不到全部的
u 这个高内聚低耦合不关是对象的一些基本原则,它也是我们整个编程当中的一个重要原则,特别是低耦合更重要一些,为什么这么说呢,因为一旦做到了低耦合,这样的话,对象之间的依赖关系会变得非常小,随之带来的好处就是,它的可维护性更高了,可扩展性也加强了,比如做一个游戏软件,这个球员的对象可以被多个游戏使用,这样在开发新游戏的时候,可以直接拿来使用,这样的话,复用性也增强了
u 高内聚的好处就是,你该有的都有了,尽量写全一点就不会出现缺胳膊少腿的
u 高内聚低耦合它不仅仅只是我们设计对象的时候的基本原则,它也是我们编程的一个重要设计原则
以上是PHP面向对象到底是啥?十分钟通俗易懂图文教程的详细内容。更多信息请关注PHP中文网其他相关文章!

PHP仍然流行的原因是其易用性、灵活性和强大的生态系统。1)易用性和简单语法使其成为初学者的首选。2)与web开发紧密结合,处理HTTP请求和数据库交互出色。3)庞大的生态系统提供了丰富的工具和库。4)活跃的社区和开源性质使其适应新需求和技术趋势。

PHP和Python都是高层次的编程语言,广泛应用于Web开发、数据处理和自动化任务。1.PHP常用于构建动态网站和内容管理系统,而Python常用于构建Web框架和数据科学。2.PHP使用echo输出内容,Python使用print。3.两者都支持面向对象编程,但语法和关键字不同。4.PHP支持弱类型转换,Python则更严格。5.PHP性能优化包括使用OPcache和异步编程,Python则使用cProfile和异步编程。

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

PHP起源于1994年,由RasmusLerdorf开发,最初用于跟踪网站访问者,逐渐演变为服务器端脚本语言,广泛应用于网页开发。Python由GuidovanRossum于1980年代末开发,1991年首次发布,强调代码可读性和简洁性,适用于科学计算、数据分析等领域。

PHP适合网页开发和快速原型开发,Python适用于数据科学和机器学习。1.PHP用于动态网页开发,语法简单,适合快速开发。2.Python语法简洁,适用于多领域,库生态系统强大。

PHP在现代化进程中仍然重要,因为它支持大量网站和应用,并通过框架适应开发需求。1.PHP7提升了性能并引入了新功能。2.现代框架如Laravel、Symfony和CodeIgniter简化开发,提高代码质量。3.性能优化和最佳实践进一步提升应用效率。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP类型提示提升代码质量和可读性。1)标量类型提示:自PHP7.0起,允许在函数参数中指定基本数据类型,如int、float等。2)返回类型提示:确保函数返回值类型的一致性。3)联合类型提示:自PHP8.0起,允许在函数参数或返回值中指定多个类型。4)可空类型提示:允许包含null值,处理可能返回空值的函数。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

SublimeText3 Linux新版
SublimeText3 Linux最新版

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

禅工作室 13.0.1
功能强大的PHP集成开发环境

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。