课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的程序员都在学习面向对象编程的相关技术知识,下面我们就通过案例分析来了解一下,面向对象编程都有哪些作用。
C和Pascal语言——当时的标准语言——提供了少量的面向机器的数据类型:数字,指针,数组,形式上的字符串,以及把多种数据组合到一起的结构体或record。重要的是,以这些基本的类型为基石,我们可以构造出更多有趣的类型,例如栈,树,链接表,哈希表,可变数组等。
在Perl或Python,或Erlang语言里,我不需要考虑这些东西。我在使用list、string或array时,根本不关心它们能容纳多少元素,或放在内存的什么地方。常使用的还有字典,同样,根本不担心它的容量或哈希冲突是如何避免的细节内容。
除此外,我仍然需要一些新的数据类型,但它们更多的是现有类型的一种变换,而不是重新构造。任意维度的vector实际就是array。一个RGB颜色值实际上一个3元tuple。一个多项式既可以是一个tuple,也可以说list。我惊奇于这些array,tuple,list,dictionary等数据类型大大的消除了我在大学课程里学到的那些基本数据类型上的不便。在实现一个平衡二叉树时,你的注意力放在如何让二叉树平衡,而不是痛苦的纠结于乱如麻的指针操作。
将已有的小方块搭建成一个新的建筑,这将会引起比小方块出现带来的更大的变化。这些小方块是如何出现的已经不是人们关心的重点。在很多的编程课程和教材中,本来很好的教学中突然出现了一批新词汇:对象,构造器,抽象基础类,以及私有方法。于是,下一次作业中,用简单的三元tuple来表达的RGB颜色值变成了由一个具有get、set方法,多高构造器的类来代替,更要命的,出现了大量的代码。
这就是为什么有人会不停的呼吁、解释为什么面向对象不是个好东西、会使编程失去乐趣的原因。但很少奏效。
并不是面向对象不好,或含有什么缺陷。而是面向对象不是计算机编程的基本原子,它们不是人们想象的天生就存在的。不设门槛的任意使用面向对象来解决问题会让代码变得臃肿和过度技术化,然而,很多人还是坚持锲而不舍的用对象来解决所有问题。
随着互联网的不断发展,越来越多的程序员都在学习面向对象编程的相关技术知识,下面我们就通过案例分析来了解一下,面向对象编程都有哪些作用。
C和Pascal语言——当时的标准语言——提供了少量的面向机器的数据类型:数字,指针,数组,形式上的字符串,以及把多种数据组合到一起的结构体或record。重要的是,以这些基本的类型为基石,我们可以构造出更多有趣的类型,例如栈,树,链接表,哈希表,可变数组等。
在Perl或Python,或Erlang语言里,我不需要考虑这些东西。我在使用list、string或array时,根本不关心它们能容纳多少元素,或放在内存的什么地方。常使用的还有字典,同样,根本不担心它的容量或哈希冲突是如何避免的细节内容。
除此外,我仍然需要一些新的数据类型,但它们更多的是现有类型的一种变换,而不是重新构造。任意维度的vector实际就是array。一个RGB颜色值实际上一个3元tuple。一个多项式既可以是一个tuple,也可以说list。我惊奇于这些array,tuple,list,dictionary等数据类型大大的消除了我在大学课程里学到的那些基本数据类型上的不便。在实现一个平衡二叉树时,你的注意力放在如何让二叉树平衡,而不是痛苦的纠结于乱如麻的指针操作。
将已有的小方块搭建成一个新的建筑,这将会引起比小方块出现带来的更大的变化。这些小方块是如何出现的已经不是人们关心的重点。在很多的编程课程和教材中,本来很好的教学中突然出现了一批新词汇:对象,构造器,抽象基础类,以及私有方法。于是,下一次作业中,用简单的三元tuple来表达的RGB颜色值变成了由一个具有get、set方法,多高构造器的类来代替,更要命的,出现了大量的代码。
这就是为什么有人会不停的呼吁、解释为什么面向对象不是个好东西、会使编程失去乐趣的原因。但很少奏效。
并不是面向对象不好,或含有什么缺陷。而是面向对象不是计算机编程的基本原子,它们不是人们想象的天生就存在的。不设门槛的任意使用面向对象来解决问题会让代码变得臃肿和过度技术化,然而,很多人还是坚持锲而不舍的用对象来解决所有问题。