三九宝宝网宝宝教育教学论文

为什么说面向对象编程和函数式编程

12月30日 编辑 39baobao.com

[c程序设计递归函数举例]递归调用即自己调用自己,与其他嵌套调用无本质区别,即在自身函数中再嵌套一个自身函数;例如计算6+7+6+7+8,可编程如下: #include <iostream.h> int fib(int a,int b); void main(...+阅读

先从结构化编程说起

很久以前,软件开发的世界还是一片浑浑噩噩,不管开发什么软件都面临着复杂性这个问题,代码里面到处是goto语句,程序的流程随意跳转。众生写代码时,越写到后面越不知道自己写的是什么。这时候出现一位巨人,它就是结构化编程。

结构化编程的基本思想是:

有序地控制流程,即把程序的执行顺序限制为顺序、分支和循环这三种;

把共通的处理归结为例程(函数)。

结构化编程的好处是:

三大限制:大大降低了程序的自由度,减少了各种组合,使得程序不至于太过复杂。对于这一点,结构化编程的顺序、分支和循环可以实现一切算法,虽然降低了程序的复杂性和灵活性,但是程序的实现能力并没有降低。

例程(函数):我们只需要知道过程(函数)的名字,而不需要知道过程的内部细节,即“黑盒化”。

虽然结构化解决了程序控制流的复杂问题,但程序里面不仅包括控制结构,还包括要处理的数据。随着处理数据的增加,程序的复杂性也会上升。这时候,面向对象编程来了!

面向对象的由来

“分别管理程序处理内容和处理数据对象所带来的复杂性”问题是,为了得到正确的结果,必须保持处理和数据的一致性,这在结构化编程中是非常困难的,解决这一问题的方案就是数据抽象技术。

数据抽象是数据和处理方法的结合。这便是最初“对象”一词的得来。面向对象编程也因此得名。

然后,从抽象原则来说,多个相同事物出现时,应该组合在一起,即DRY原则(Don't Repeat Yourself),便又引出了类这一概念。

根据数据类型来进行合适的处理(调用合适的方法),本来就应该是编程语言这种工具应该完成的事。这便是多态的引出了。

而对于继承,大部分的观点是“继承是随着程序的结构化和抽象化自然进化而来的一种方式”。结构化和抽象化,意味着把共通部分提取出来生成父类的自底向上的方法。(如果继承是这样诞生的话,那么最初,有多个父类的多重继承就会成为主流,而实际上最初引入继承的Simula语言只提供单一继承。松本行弘认为继承的原本目的实际是逐步细化)

以下为关联文档:

c语言递归函数递归求阶乘的吧,不过你写的有问题,函数既然接受形参n,在函数里就不用再读取了;而且函数返回的是long类型,应该强制转换返回值。 #include <stdio.h> long rfact (int n) { float...

C语言用递归函数实现求1 2 31 2 3 4 5 6 7 8 9 10 11 #include <stdio.h> intsum(intn) { if(n == 1)return1; returnn+sum(n-1); } intmain() { printf("%d\n", sum(10)); return0; }...

c语言求分段函数Y FX的值你只给出了X的取值范围,函数表达式呢,怎么没有给出? 我假设这样: Y=X (X〈-1) Y=1(-1〈=X〈=1) Y=X*X(X〉1) 用C语言实现,输入X的值,求Y的值,那么可以表示为: int function(int x) {...

c语言中的strcmp函数函数原型:extern int strcmp(const char *s1,const char *s2); 函数功能:以ascii码值比较两个字符串的大小,当s1<s2时,返回为负数,当s1=s2时,返回值= 0,当s1>s2时,返回正数。 头文件...

在C语言中 strcmp是什么函数描述:比较串 #include <sting.h> int strcmp(const char *s1,const char* s2); int __far _fstrcmp(const char __far* s1,const char __far* s2); s1,s2为要比较的串 strcmp...

C语言的strcmp用函数表示1. 首先记住一件事,C语言中,数值0表示假,非0表示真(即!0=true) 2. *(unsigned char *)src,表示取src字符串中第1个字符 3. *(unsigned char *)dst,表示取dst字符串中第1个字符 4. re...

c语言的static与函数变量你在函数中定义static变量,在定义的时候须得给他赋值,而且在程序运行中,只有第一次调这个函数时你所赋的值才有效果,之后每次调此函数,都不会重新给他赋值了(例如staitc a = 10,下...

static这个函数static 是C中很常用的修饰符,它被用来控制变量的存储方式和可见性 static 声明的变量在C语言中有两方面的特征: 1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时...

c语言结构体函数:PHP的语言结构和函数的区别1、 什么是语言结构和函数 语言结构:就是PHP语言的关键词,语言语法的一部分;它不可以被用户定义或者添加到语言扩展或者库中;它可以有也可以没有变量和返回值。 函数:由代码块组...

推荐阅读
图文推荐