如何理解面向对象程序设计与面向过程程序设计

何为面向对象与面向过程

       作为刚接触java的小白,我们会被告知java是一门面向对象的程序设计语言,面向对象能使java多么多么优秀巴拉巴拉巴拉一大堆东西,那么自然我们很容易就会产生的疑问就是,什么是面向对象的程序设计语言呢?我谈谈我的理解哈(希望有大佬发现不对可以指点指点)
       面向对象(java为例),顾名思义就是这门程序的设计就是面向对象进行的。那我们所考虑的就是我们要解决这个问题的对象需要什么,然后我们去编写相关代码。而面向过程(c语言为例)就是,我们解决问题的同时,我们需保持过程的完整没有冲突。举个例子:
       一家蛋糕店,新开业了,老板交代可爱的程序员们写个代码,算出每天的营业额。(为了便于理解我们就不考虑那么多麻烦的东西,营业额就等于卖出蛋糕的个数乘以价格就好了哈。)张三李四分别写了个最基础的代码,这很简单,大家都会。之后情人节快到了,老板说我们面包店要办点活动,跟随时代潮流,就决定买两个蛋糕打七七折,致敬七夕。那面向过程的张三就在蛋糕总额那里直接乘以0.77,非常简单,电脑一关就回家了。而面向对象的李四新建了一个情人节类,引用了买蛋糕的方法然后重写了价格的计算方法也回家了。情人节一过植树节又快来了,老板说为了跟随时代的潮流,我们所有绿色的蛋糕都打八折,这时候张三先把之前情人节类的计算方法删了,然后在蛋糕中找出绿色的然后打八折。这边李四新建了一个植树节类然后重写了支付方法。好了过了一段时间又有了新的活动,老板这次说所有绿色的蛋糕买两个打六折。那么大家猜猜张三和李四应该怎么办呢?张三可怜巴巴的去把整个代码从上到下又完善了一遍,还一边担心不小心打折卖多了颜色选错了,李四把之前的情人节类与植树节类直接结合一下,生成一个新类,早早下班回家。
       从这个小故事可以类比到大的项目,面向对象的优点在于极好的复用性,方法多种多样,如果每次都要从头写一遍梳理一遍,无疑极大的耗费我们的时间,检验的时候也无法清晰的得知哪个地方出了问题

你可能感兴趣的:(面向对象编程)