相信大家都知道这两个东西,可是大家是如何知道的呢?我们又该如何区分这个东西到底是面向过程还是面向对象的呢?
那,我们首先就要知道什么是面向过程,什么是面向对象:
面向过程”(Procedure Oriented):
是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,并且它们不允许混合持久化状态和域逻辑。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象(Object Oriented,简称OO)
是一种以事物为中心的编程思想。是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
这样说的太干燥了,来点实例:
就说一个混小子吧,结婚之前,他如果想吃点酒菜,首先要自己去买各种菜,然后炒个白菜肉,红烧鱼,红烧牛肉,葱爆羊肉,油闷大虾。用代码来说就是
结婚了之后吧,这小子媳妇儿挺贤惠,什么都会做,脾气又好,可爽了这小子了,在想吃酒菜的时候,给媳妇儿说“亲爱的,我要吃酒菜,吃白菜炒肉,红烧鱼,红烧牛肉,葱爆羊肉,油闷大虾”,是这样来实现的:
/** * * @author 李卫中 */ public class EatJiuCai { String name; public static void main(String[] args){ HunBoy boy=new HunBoy(); Wife wife=new Wife(); boy.name="混小子"; wife.name="好媳妇儿"; boy.DianCai("白菜炒肉"); boy.DianCai("红烧鱼"); boy.DianCai("红烧牛肉"); boy.DianCai("葱爆羊肉"); boy.DianCai("油闷大虾"); wife.cookBaicaiRou(); wife.cookHongshayu(); wife.cookHongshaocow(); wife.cookCongBaosheep(); wife.cookYoumendaxia(); } } class HunBoy{ String name; public void DianCai(String caiName){ System.out.println(name+"说:我要吃"+caiName); } } class Wife{ String name; public void cookBaicaiRou(){ System.out.println(name+"说:我做好了白菜炒肉"); } public void cookHongshayu(){ System.out.println(name+"说:我做好了红烧鱼"); } public void cookHongshaocow(){ System.out.println(name+"说:我做好了红烧牛肉"); } public void cookCongBaosheep(){ System.out.println(name+"说:我做好了葱爆羊肉"); } public void cookYoumendaxia(){ System.out.println(name+"说:我做好了油闷大虾"); } }运行结果呢:
通过这个,就很好理解了吧,还不行的话,只能上绝招了
面向过程:
面向对象:
这样明白了没?面对过程的时候,混小子光棍一根,没人帮他,所以有事得自己从头做到尾,也就是从梦想到实现都是自己一步步去经历。注重的是过程。
可是结了婚之后,这小子有了一个厨师,他在想吃什么东西,只需要点菜名,告诉他的好媳妇儿一声,他的好媳妇直接给他做然后端给他。而混小子呢,他不需要管怎么做菜,做菜要经历什么,他只需要点个菜,然后等着吃,也就是传一个菜名,然后等着媳妇给他最后端过来吃就好了。在这里注重的是,他给媳妇说,媳妇儿给他做
这就是面向对象的思想:是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
小结:
面向过程,是将一件事的实现从头到尾面面俱到的去实现,按顺序,一步步什么都不少
而面向对象,是我把这件事交给别人(可以做这件事的人),我只需要发布命令,然后坐等结果就好,过程,我不管,我只要最后的目的被实现就好(要考虑性能哦)
题外话:
媳妇儿是用来疼的,广大的那行同胞们,外面雄风不到,家里厨房乱跑才是好的,以后像这种混小子的活,还是不要做得好,得给媳妇儿做饭,做个气管炎,其实挺幸福的