今天,再一次的接触到了面向过程和面向对象这两个名词,之前在学习Java语言时,接触到了一些有关两者的概念和区别,学习过后也仅仅只是会照着书上敲代码,比如创建一个类,类里面创建成员变量和成员方法,但是从来没搞懂过它的思想是什么,面向过程编程是什么?面向对象编程又是什么,过程?对象?两者指的是什么?
在今天的Python课堂上,经过老师用幽默风趣的方式和联系实际的方法给我们讲述了面向过程和面向对象这两种编程思想,一天的课程下来,我对自己的理解做了如下总结:
我们在进行软件编程时,最主要的问题就是为了解决实际问题,而在解决问题时,我们需要首先会在脑海中考虑这个问题要怎么解决,具体解决步骤是怎样的,这就形成了在你的大脑中形成了解决问题的思路,这就相当于你的编程思路,久而久之,这种编程思路会在潜移默化的形成你的编程思想。
面向过程编程是新手比较容易接受的,它主要是过程为中心,按照事情的发展过程和步骤一步一步的完成功能,因为对于我们人类来说,当面临一个问题时,我们会如上所说,在脑海中形成事情解决的步骤,然后一步一步的去解决问题,同样,面向过程就是运用了我们人类考虑问题的方式。但如果在解决问题时,到某一个步骤出了问题,后面的则执行不了,导致事情完成不了。所以在面向过程中,如果其中一个代码出现问题,则所有与它相关的代码都会出现问题。它比较适用于一些功能简单的程序开发,而在企业级开发中,使用面向过程则不合适。
面向对象是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其它概念来构造系统)。这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。事物本身含有自己的属性特征,通过事物(对象)之间的相互协调来共同完成功能。
在面向对象时,类和对象是相当重要的,同样也是比较难理解的东西。其实一句话,类是对象的抽象,对象是类的实例。我们在生活中接触到的事物都可以称之为对象,而把对象的作用和属性特征相同的归类在一起然后给它们起个名字,如,生活中常见的桌子,我们把能供人在上面写作办公吃饭等的一种东西叫做桌子。桌子有很多种,有称为圆桌子,方桌子的等,但是它们仅仅是因为属性特征不一样,但它们还是称作桌子,因为它们还是供人们写作办公的,因此它们就被归类在桌子这一类别中,这就相当于面向对象中的“类”,而各种各样的桌子就是类中的对象,它们都具有长、宽、高的属性,属性值的不同则代表不同的对象。同样,对象也有自己的行为,我们把人看作一个类,某个人则是一个对象,这个有身高体重等属性,同时他具备吃饭,睡觉和玩游戏的行为。而这些行为则称为对象的方法。
经过今天的学习和自己的理解,在编程练习时不再时像一个傀儡一样只是敲代码,而是带有思想的去编写程序,每写一行都知道这是在干嘛,有什么用,在哪里会用到它们。鉴于今天刚接触一点,所以理解的东西不是很深,只是知道个大概意思。不过随着以后的学习,我会更加深入的了解。