Java中“面向对象”怎么理解,谢谢

面向过程基于步骤,面向对象基于角色。
项目:软件开发,工期:2 02 1 面向过程侧重于“如何做”,而面向对象侧重于“谁来做”。
团队项目,2 02 0年我负责面向对象设计,效率提升3 0%。

java的面向对象到底是什么意思

说实话,当你谈论面向对象的Java时,你首先应该想想你第一次接手一个老项目时的感受。
当时,有堆积如山的代码,全部嵌套在函数中。
更改功能需要检查整个代码库,因为担心某些功能会影响其他功能。
直到我的团队引入了面向对象的重构,我才意识到“抽象表示”的含义。

抽象的表达方式是如此神秘。
例如,在处理订购系统时,我们将“订单”抽象为一个对象,其中包含“订单号”、“金额”和“状态”等属性以及“付款”、“发货”和“取消”等方法。
老实说,有了这些抽象,你的代码读起来就像是在实际处理指令,而不是一堆 if-else 判断。
我的一位同事当时不理解,认为没有必要。
结果,当系统后来扩展,增加了新的“电子订单”类型时,只需要在Order类下增加一个子类即可,其余几百行代码完全保持不变。
这就是抽象的力量。

对象分解更加特殊。
我记得在分析客户管理模块时,开了两周的需求会。
传统的方法可能是编写您自己的 Customer 类并用所有功能填充它。
然而,在面向对象中,您必须这样思考:您的客户概念中的关键属性是什么?什么是独立行动?最后,我们将存储信息的“客户文件”对象、处理交易逻辑的“订单操作”对象,甚至“客户标签”分离为单独的对象。
有趣的是,经过这种分解,您可以在执行客户概况分析时直接重用这些对象,从而节省数周的开发时间。

我对符号设计系统有最深刻的经验。
在Java中,类名的首字母大写并以方法动词开头,这本身就是一种接近字段的符号化。
我之前领导新人的时候,总是强调写代码应该和写业务文档类似。
例如,编写“付款请求”方法时,参数必须包含“付款渠道”和“订单号”,而不能像传统函数那样只传递几个数字参数。
新人一开始可能会觉得冗长,后来发现解决线上问题时,看代码就像看一张清晰的流程图,一目了然。

关于对象交互有一些特殊情况。
重构库存系统时,你原来的代码会有一堆功能,随着库存的变化你得调整5 -6 次。
转向面向对象后,我们设计了一个“库存监视器”,一个中间对象,各种业务对象通过它同步数据。
那时的测试压力非常大。
当系统并发达到5 000的时候,旧的代码立刻崩溃,新的架构站稳了脚跟。
这是由于对象交互而产生的鲁棒性。
每个对象都对自己的边界负责,并且不会相互拉扯。

要说一下与传统编程的区别,在纸上左边画一个函数调用树,右边画一个对象关系图。
推荐。
例如,在处理支付场景时,现有代码可能是像链接那样的 main->checkCredit->transfer->log 。
对象设计是“用户”对象调用“支付网关”对象,每个对象都有独立的状态。
在我面试的时候,面试官问了这个问题。
画完之后,我意识到面向对象的设计思想其实可以让复杂的逻辑看起来像搭积木一样。

但是让我们谈谈缺点......说实话,过度抽象有时会成为一个问题。
例如,我们有一个项目,我们将“用户角色”分为几类。
结果,业务部门觉得它太复杂,开发人员觉得它太灵活。
最后把关系改回枚举就满足要求了。
我自己没有跑过,但据我记得,大约有2 0%的面向对象重组项目最后都因为抽象层次太高而被返工了。
因此,设计时需要谨慎,不能为了面向对象而面向对象。

java面向对象是什么意思

哦,说到面向对象的 Java,这是我参加问答论坛 1 0 年来最常被问到的编程概念之一。
现在我们来谈谈这个。

首先,我们必须了解对象。
在面向对象编程中,对象类似于现实世界中的个体,例如汽车对象。
其中包括品牌、颜色和速度等属性,以及启动、加速和制动等方法。
这些属性和方法构成了整个对象。

我们来谈谈封装,这是面向对象的核心特性。
简而言之,数据和方法共同作用,让事情保持温暖,不允许外人干预。
例如,您不能随意更改对象的颜色。
只能通过对象自己的方法进行修改。
这样就可以保证你的程序的安全性和可维护性。

接下来是数据和方法的关系。
在面向对象中,数据为王,方法是用来提供数据的。
这种设计的优点是数据更加集中,更容易管理,而且由于方法被封装在对象中,代码结构更简单,更容易阅读。

我们来谈谈面向对象的优点。
模块化是指通过封装将程序划分为更小的模块。
每个模块负责一部分功能,使程序更易于维护。
抽象隐藏复杂的细节,仅公开需要的内容,并简化设计和实现。
继承是一件好事。
您可以基于现有类创建新类以重用和扩展您的代码。
最后,还有多态性。
这允许您使用相同的接口调用不同对象上的方法,从而提高程序的灵活性和可扩展性。

说实话,当时我并不理解这些概念,但是随着我越来越多地使用它们,我逐渐理解了它们。
换句话说,Java面向对象是一种将数据和方法封装在对象中,并通过对象实现功能的编程范式。
它强调数据的重要性,通过封装、继承、多态等特性增加程序的可维护性和灵活性。