什么是面向对象
面向对象(OOP)是把一个任务拆分为若干个小对象,然后通过各个对象之间的互动来完成任务。
面向对象更加注重对象和职责,不同的对象承担不同的职责。
比如说在食堂中,厨师可以看作一个对象,而我们只需要把炒菜的这个功能封装给到厨师,那么厨师就有了炒菜的功能,而主程序也就是食堂只要招聘一个厨师,那么这个食堂就有了炒菜的功能。同理食堂还有清洁的功能,我们只要招聘一个清洁工并把清洁的功能封装给清洁工,那么食堂就有了这个功能。所以一个完整的食堂都是由厨师,清洁工,打菜员等各个对象之间的互动来完成的。
所以面向对象就像是一个大的封装,根据对象的职责在各个对象中封装相应的功能。
面向过程
面向过程是把一个任务拆分为若干个小任务,然后按照整个一定的次序执行来完成任务。
面向过程比较注重步骤与过程,不注重职责分工,根据开发需求,将某些功能代码封装成一个又一个函数,最后就是顺序的调用不同的函数来完成任务。
还是在食堂中,根据需求要先炒菜,然后打菜,最后洗碗清洁等。我们需要根据这些步骤来封装炒菜,打菜,清洁的函数,最后在依次调用这些函数来完成食堂的功能。相比较于面向对象,面向过程的操作就多了许多。
面向对象与面向过程的区别
面向对象(谁来做)
1.在完成某一个需求前,确定职责。
2.根据职责确定不同的对象,在对象内部封装相应的功能。
3.顺序的让不同的对象调用不同的方法。
特点
1.注重对象和职责,不同的对象承担不同的职责。
2.更加适合应对复杂的需求变化,比较适合复杂的大型项目。
面向过程(怎么做)
1.把完成某一个需求的所有步骤从头到尾逐步实现。
2.根据需求将某些功能代码封装成一个又一个函数。
3.最后顺序的调用不同的函数。
特点
1.注重步骤与过程,没有明确的分工。
2.如果需求复杂,代码会变得复杂,甚至会出现调错函数的情况。
3.不适合大型的复杂项目。
什么是对象,类
万物皆可为对象,其实任何一个实体都可看作对象。比如一只猫可以是对象,狗可以是对象,飞机,火车也是一个对象。对象包含"属性(变量)"和"行为(方法)"两部分。属性描述这个对象是"什么样子",行为描述这个对象"能做什么"。比如一个公交车,它是绿色的,长为5米,宽为2米那么这个颜色和长宽就是公交车的属性;公交车还有自动开关门,加速,减速的功能,那么这些功能也就是公交车的行为。
类其实就是具有相同属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。
比如说奔驰,宝马,奥迪等它们都具有行驶的功能,也有轮胎等属性,所以我们可以把它们规划为汽车类。还有像猫,狗,鸟等我们都可以规划为动物类。
简单的来说就是把相同或相似的对象划分为一起叫做类。