专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 关于面向对象思想的理解

关于面向对象思想的理解

更新时间:2022-06-21 11:56:04 来源:赢咖4 浏览594次

面向对象,这个对象到底是什么?

严格来说,这样的对象必须是面向对象编程实现(OOP )中的对象。 既不是面向对象编程,也不是面向类的实例编程。 对象的定义是人们研究的任何东西,从最简单的整数到复杂的飞机都可以看作对象,它不仅可以表示具体的东西,还可以表示抽象的规则、计划或事件。因此,面向对象这个对象指的是对象。 客体是客观存在的对象实体和主观抽象的概念。

关于面向对象思想的理解

为什么要面向对象?

面向对象是为了解决系统的可维护性、可扩展性和可重用性。 让我们进一步思考面向对象为什么能够解决系统的可维护性、可扩展性和可重用性。

面向对象产生的历史原因有以下两点。

1.计算机帮助人们解决问题,但计算机毕竟是机器。 他只是按照人写的代码,一步一步地执行,最终得到了结果。 因此,无论程序有多复杂,计算机都能很容易地应对。 结构化编程是指按照计算机思维编写的代码,但人一看到这样复杂的逻辑,就无法进行维护和扩展。

2.结构化设计是指以功能为目标设计构建应用系统,其结果是,我们在设计程序时,必须将由对象构成的现实世界映射到由功能模块构成的解空间中,其变换过程是人类观察和解决问题的基本过程

在设计系统时,结构化设计不能解决重用、维护和扩展的问题,而且逻辑太复杂,代码很难理解。 于是,人们想,能否让计算机直接模拟现实环境,用人类解决问题的思维方式、习惯和步骤来设计适当的APP? 这样的程序在人们读它的时候更容易理解,也不需要在现实世界和程序世界之间来回切换。

同时,现实世界中存在的对象是问题域的主角,对象是指客观存在的对象实体和主观抽象的概念,这类对象具有属性和行为,但对象稳定,行为不稳定,同时研究表明,面向对象编程比面向行为编程系统更稳定,面对频繁的需求变更时变化的是行为,对象一般不需要变化

于是,面向对象应运而生。

但是,人们所追求的系统的可维护性、可扩展性和可重用性是如何体现为面向对象的呢?

首先,让我们来看看面向对象的三个特征:

封装:发现变化并将其封装后,可以修改或扩展封装的变化部分,而不会影响其他部分。 封装的作用解决了程序的可扩展性,因为这是所有设计模式的基础和封装的变化。

继承:子类继承父类,继承父类的方法和属性,可以实现多态性和代码重用,因此也解决了系统的可重用性和可扩展性。 但是,继承破坏了包。 因为他对子类开放,修改父类会改变所有子类,所以继承在一定程度上损害了系统的可扩展性,所以继承需要谨慎使用,只有明确的IS-A关系可以使用。 同时继承不是从编程一开始就使用继承,而是在程序开发的过程中重构得到的,很多面向对象的开发人员滥用了继承,结果后期的代码无法解决需求的变化。 因此,优先使用组合而不是继承是面向对象开发中的重要经验之一。

多态性:接口的各种实现方法都是多态性。 界面是行为的抽象。 正如刚才封装中所述,我们将发现变化部分并封装,封装后,您将如何应对下一个变化? 可以想象这正是接口的作用,接口的主要目的是为无关的类提供通用的处理服务。 例如,鸟会飞,但超人也会飞。 跳过这个界面,鸟和超人都可以实现这个界面。 由此实现了系统的可维护性、可扩展性。

因此,面向对象可以实现人们所追求的系统的可维护性、可扩展性、可重用性。 面向对象是一种编程思想,起初,“面向对象”是指在编程中采用封装、继承、多态性等设计方法,但面向对象的思想已经涉及到软件开发的各个方面,例如现在

面对对象编程,分为几个步骤?

面向对象是指在分析和解决问题时,将思考和重点放在现实对象上,然后通过UML工具组织这些对象之间的联系,最后用面向对象的语言实现该对象与对象之间的联系它分为面向对象分析(OOA )、面向对象设计)、面向对象编程实现)、OOP )三大步骤。

1.首先是分析需求。 首先,不要考虑如何用程序实现它。 首先,分析需求中稳定不变的对象是什么,这些对象之间的关系是什么。

2.将第一步分析的需求,进一步扩展模型,使之成为可实现的、符合成本的、模块化的、低耦合高凝聚的模型。

3.使用面向对象的实现模型

面向过程到面向对象思维如何转变?

面向过程的编程时,我发现在程序中哪里也找不到需要面向对象的地方。 最大的原因是思维没有改变。 通常,程序员在得到一个需求时,第一反应是如何实现这个需求。 这是一个典型的面向过程的思考过程,可能很快就会实现。 面向对象是面对对象的。 第一步不是思考如何实现需求,而是进行需求分析。 也就是说,根据需求找出其中的对象,然后找出这些对象之间的联系。 因此,流程导向和对象导向思维方式转换的关键是第一步设计,拿到需求后,一定先不要考虑如何实现它,而是通过UML建模,然后按照UML模型去实现它。这种思路的转变,可能需要个过程。

面向对象和基于对象的区别

“面向对象”和“基于对象”都实现了“封装”的概念,但是面向对象实现了“继承和多态”,而“基于对象”没有实现这些。因此在我们进行WEB开发,普通三层开发中,基本上是基于对象的实现,因为只是实现了封装,但是没有使用继承和多态,不过这也正常,WEB开发,大部分功能就是简单的增删改查,中间的BLL层基本就是直接New一个DAL的实例就return了,关系数据库已经为我们做了很多工作,所以大部分的工作,就是简单读取然后显示了,因此没有复杂的需求的时候,基于过程也没什么不对,面向过程也没什么不对,实用是压倒一切的因素。

以上就是关于“关于面向对象思想的理解”,大家如果对此比较感兴趣,想了解更多相关知识,不妨来关注一下赢咖4的Java教程,里面有更多知识等着大家去学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>