函数与面向过程、面向对象
函数是程序的重要组成部分。你会发现一个程序里,大多数时候都是在编写和调用函数。在C语言中,函数又可以分为两类,一类是库函数(比如printf函数就是库函数),一类是自己实现的自定义函数。库函数是由库提供定义和实现,由程序员直接调用的函数。程序员只需要包含这个函数定义的头文件,就可以在程序中按照定义的格式来进行调用了。而自定义函数,就是需要程序员自己来定义和实现,然后才能调用的函数。
面向过程:procedure oriented programming POP
面向对象:object oriented programming OOP
面向过程是分析解决问题的步骤,然后用函数把这些步骤一步一步的实现,然后在使用的时候一一调用则可
面向对象是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。 以下面的例子来区分二者在解决问题时候的思维角度:
下雨的时候,人们为了防止被雨淋打开伞避雨:
面向过程,分为3个步骤:
下雨了,我打开了伞,挡雨
每个步骤实现一个函数,依次调用:
rain(雨);
open(我,伞)
prevent(伞,雨)
面向对象,分析3个对象以及它们的行为:
对象:我 伞 雨
行为:雨下,我打开伞,伞挡雨
rain,me,umbrella
rain.fall();
me.open(umbrella)
umbrella.prevent(rain)
面向过程是把问题分解成若干步骤,每个步骤实现一个函数,一步步实现,然后在使用的时候,把数据传递给这些函数,计算得出结果。面向对象是首先抽象出各种对象(比如上面的我,伞,雨),把数据和解决问题的方法封装在对象中,然后各个对象之间通过行为发生作用
C语言是一种面向过程的编程语言,而C++却是一种面向对象的编程语言。在C++程序里,数据和对数据的处理都被封装在了一个对象里。
在面向对象的世界里,用类一个个的构造出对象来,在主程序里调用的是一个个对象的行为。
(1)对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机,以及人等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
(2)对象的状态和行为。
对象具有状态,一个对象用数据值来描述它的状态。
对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。
对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中
(3)类。
具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。
类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。
类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。