PHP面向对象到底是啥?十分钟通俗易懂图文教程PHP面向对象的基本概念(一)、面向对象的基本概念

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步,来到了讲台中间,紧接着我看向张三,然后问了一个问题,“你好,请问你叫什么名字”,最后张三回复我:“你好,我叫张三”

老师.png

这个图里,对象分别是老师,学生,首先是老师调用了他自身的方法,方法的顺序依次是 走,看,问,紧接着调用了张三对象的回复方法

7、面向对象的基本思路

l 第一步:识别对象

-任何实体都可以称为对象

l 第二步:识别对象的属性

n 对象里面存储的数据都是属性

n 对于不同的业务我们要关注的属性是有所不同的

u 比如上面的场景中,我们要用面向对象的方式把它还原,那么关注的属性就是名字,身份,方法就是3个,走,看,问

u 比如女主播和球员都是人,但是因为业务不同,所以我们关注的属性和方法也会不同,比如女主播,我们更关注的是它的艺名,还有唱歌,球员我们更关注的是他是哪个球队的,以及他球技

l 第三步:识别对象的行为

n 比如说对象自己数据的改变都是行为

n 对象和外部之间的交互

8、面向对象的基本原则

l 对象内部是高内聚的

n 只包含一项特定的职能(职能是可大可小)

u 比如说球员,他只负责打球,女主播只负责唱歌,虽然他们还可以做其他事情,但是因为业务不同,所以职能不同,然后其他的职能就没有包含进来

n 所有对象相关的内容都封装在对象内部

l 对象外部它是低耦合的

n 外部的世界只能看见对象的部分属性,看不到全部的

n 外部世界只能看见对象的部分行为,看不到全部的

u 这个高内聚低耦合不关是对象的一些基本原则,它也是我们整个编程当中的一个重要原则,特别是低耦合更重要一些,为什么这么说呢,因为一旦做到了低耦合,这样的话,对象之间的依赖关系会变得非常小,随之带来的好处就是,它的可维护性更高了,可扩展性也加强了,比如做一个游戏软件,这个球员的对象可以被多个游戏使用,这样在开发新游戏的时候,可以直接拿来使用,这样的话,复用性也增强了

u 高内聚的好处就是,你该有的都有了,尽量写全一点就不会出现缺胳膊少腿的

u 高内聚低耦合它不仅仅只是我们设计对象的时候的基本原则,它也是我们编程的一个重要设计原则


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读8.4k次,点赞8次,收藏7次。SourceCodester Online Tours & Travels Management System pay.php sql injectionLine 16 of pay.php invokes a SQL query built using unvalidated input. This call could allow an attacker to modify the statement’s meaning or to execute arbitrary SQL commands.SQL
文章浏览阅读3.4k次,点赞46次,收藏51次。本文为大家介绍在windwos系统搭建typecho博客+cpolar内网穿透工具将博客发布到公共网络环境,实现远程也可以访问和操作。_windows搭建typecho
文章浏览阅读1.1k次。- php是最优秀, 最原生的模板语言, 替代语法,让php更加的优雅的与html生活在一起 -->请放心, 最终生成的,或者说用户最终看到的,仍然是一个html文档, php代码中的内容不会被泄漏的。-- 将php与html代码混编的时候,大括号很容易造成配对错误,最好杜绝它 -->php标签内部代码由php.exe解释, php标签之外的代码原样输出,仍由web服务器解析。-- 所以php的流程控制语句, 都提供了替代语法,用冒号代替大括号 -->php echo '百变鹏仔'?_利用php将静态页面修改为动态页面
文章浏览阅读1.1k次,点赞18次,收藏15次。整理K8s网络相关笔记博文内容涉及 Linux network namespace 认知以及彼此通信Demo,实际中的应用理解不足小伙伴帮忙指正不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了。——村上春树。_linux network namespace 多端通信 模式认知
文章浏览阅读1.2k次,点赞22次,收藏19次。此网络模型提供了一个逻辑二层(L2)网络,该网络封装在跨 Kubernetes 集群节点的现有三层(L3)网络拓扑上。使用此模型,可以为容器提供一个隔离的 L2 网络,而无需分发路由。封装网络带来了少量的处理开销以及由于覆盖封装生成 IP header 造成的 IP 包大小增加。封装信息由 Kubernetes worker 之间的 UDP 端口分发,交换如何访问 MAC 地址的网络控制平面信息。此类网络模型中常用的封装是 VXLAN、Internet 协议安全性 (IPSec) 和 IP-in-IP。_k8s网络组件对比
文章浏览阅读1.1k次,点赞14次,收藏19次。当我们谈论网络安全时,我们正在讨论的是保护我们的在线空间,这是我们所有人的共享责任。网络安全涉及保护我们的信息,防止被未经授权的人访问、披露、破坏或修改。
文章浏览阅读1.3w次,点赞3次,收藏7次。尽管您可以通过 ping 命令解析出网站的 IP 地址,但是可能在浏览器中访问时仍然遇到问题,这可能是因为浏览器使用的 DNS 解析结果不同于 ping 命令使用的解析结果。可能是因为您的网络或设备上设置了防火墙,阻止了对特定网站的访问。有些国家或组织可能会对特定的域名进行屏蔽,从而阻止访问相关网站。如果您的网络使用代理服务器进行访问控制,可能会由于代理服务器的配置问题导致无法访问某些网站。即使您的网络和设备一切正常,目标网站本身可能也存在问题,例如服务器故障、维护或过载,导致无法访问。_能ping通打不开网页
文章浏览阅读839次,点赞22次,收藏19次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。
文章浏览阅读2.1k次,点赞31次,收藏22次。基于微信小程序奶茶点餐外卖系统设计与实现(PHP后台+Mysql)可行性分析毕设源代码毕业设计,数据安全和系统稳定性以及团队能力和资源配备方面都具备较好的条件。因此,该项目的可行性较高。:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;微信小程序作为一种快捷、方便的移动应用形式,成为很多用户点餐外卖的首选。项目的界面和功能都可以定制,包安装运行!项目配有对应开发文档、开题报告、任务书、PPT、论文模版等。
文章浏览阅读1.8k次,点赞52次,收藏38次。本文主要通过对系统的前台系统和后台管理系统进行了功能性需求分析,对系统的安全性和可扩展性进行了非功能性需求分析。在详细的需求分析的基础上,根据系统的功能设计确定了数据库结构,实现完整的代码编写。Lucky+Baby母婴用品网站使用 Dreamweaver、HBuilder代码编辑器、Apache服务器等开发工具,完成了系统的主要模块的页面设计和功能实现。本文展示了首页页面的实现效果图,并通过代码和页面介绍了用户注册功能、商品搜索功能、生成订单和查看我的订单功能、在线付款功能功能的实现过程。
文章浏览阅读1.5k次,点赞45次,收藏40次。本设计主要实现集人性化、高效率、便捷等优点于一身的人事信息管理系统,完成首页、系统用户、通知公告、部门信息、员工薪资、考勤签到、员工请假、招聘信息、应聘信息等功能模块。
文章浏览阅读1k次。该错误通常出现在数据库读取结果集数据时,比如当我们写好SQL语句从数据库读取数据时,本身应该返回结果集,再给结果集中读取数据。解决思路:这种错误一般是因为echo后面输出了一个数组导致的,或者是数组作为字符串进行拼接运算时导致的。该错误直译为:警告:mysqli_fetch_assoc函数期望参数1是mysqli的结果集,但是给了一个布尔值。这种错误是PHP解析器在解析时遇到了语法错误,直译为:解析错误:语法错误,意料之外的...该错误直译为:提示:未定义的索引:username。_array to string conversion in
文章浏览阅读2.7w次。解决http请求报错context deadline exceeded (Client.Timeout exceeded while awaiting headers)_context deadline exceeded (client.timeout exceeded while awaiting headers)
文章浏览阅读1.3k次,点赞26次,收藏24次。复杂网络是一种由大量相互连接的元素(节点或顶点)组成的网络结构,这些连接通常是非常复杂和动态的。这些网络可以在各种领域中发现,包括社交网络、生物学系统、信息技术和交通系统等。_代理建模
文章浏览阅读2.6k次,点赞76次,收藏71次。epoll详解,事件模型,ET/LT模式,并通过三个示例进行代码实现。
文章浏览阅读3.3k次。罗拉ROLA-IP是一家来自纽约的代理IP提供商,由李嘉诚先生投资建设,韩国人工智能、自动驾驶、虚拟现实方面的领军企业World IT Show投资入股,由美国纽约大学IT管理教授团队研究开发,进入中国市场6年多,全世界设有多个分子公司。接下来,我们要检查代理和防火墙的设置,因为在绝大多数情况下,它们是导致这个错误的原因,尤其是当用户使用免费代理时。对网站的访问受阻实际上是一个非常常见的错误,它既可能是由于物理原因(硬件问题)造成的,也可能是由于软件错误引起的。检查代理设置,并确保其正确配置。_无法访问此网站,检查代理服务器和防火墙
文章浏览阅读1.1k次,点赞14次,收藏20次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。_php洗车服务预约管理系统php源码
文章浏览阅读1.1k次。桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。同时,对于桶中元素的排序,选择何种比较排序算法对于性能的影响至关重要。
文章浏览阅读936次,点赞22次,收藏17次。本系统带文档lw万字以上文末可领取本课题的JAVA源码参考。
文章浏览阅读822次,点赞15次,收藏14次。在整个设计过程中,要确定可能的具体解决方案,以实现每一个小的最终目标,对于每一个小目标,我们首先必须了解一些相关的需求分析信息。除了以上作品下面是2023-2024年最新100套计算机专业原创的毕业设计源码+数据库,是近期作品,如果你的题目刚好在下面可以文末领取java源码参考。springboot基于springboot的在线考试系统。springboot基于springboot的商城购物系统。springboot基于微信小程序的智慧校园设计与实现。springboot基于用户的协同过滤算法的话题推荐。