请不要误会,这个不是在将面向对象发展史。只是说说我和几位同事在聊各自学习面向对象的过程。感觉很有意思。特意拿出来与大家分享。
我最近在思考写一个系列的面向对象的文章。找不到思路,于是请了几位同事,请教他们在学习面向对象过程中的想法。下面是他们的说法。
J君:
-
在大学里学的C语言,C++和java是自学的。
-
开始是理论派,视面向对象为神圣不可侵犯。
-
进入公司后学习Delphi,有些地方不是很习惯,比如接口
-
主要工作是做业务模块,经过大量开发过程后,开始感悟面向对象不是一切。
-
接触动态语言(python,ruby)和函数式语言(lisp,haskell),开始批判的眼光看面向对象。
-
不能为了对象而对象,不是所有原则都是对的,关键在于你能得到什么?
H君:
-
动态:先从继承的概念理解
-
静态:慢慢开始用类来组织代码,可以认为是封装的概念
-
关系:和数据库中的表的关系一样,慢慢理解系统是有对象及之间的关系组成的。
-
变化:从设计模式学习开始,慢慢理解系统是变化的,而对象的设计也是针对变化的。
-
思想:面向对象的根本思想,是使用对象这种思维模式去理解整个系统。面向对象,其实是对象面向系统,从而设计对象的独立接口。
S君:
-
大二开始学习面向对象语言C++,对于概念死记硬背
-
理解封装的概念
-
认为对象是IT行业中,用来描述系统的元素,就像几何中的点线面一样。都是一些概念。
-
深入Delphi的VCL,对对象的理解深入
-
感觉对象关系比较简单,程序员看的世界都这么简单,其实有坏处。最好从其他系统中介入。
L君:
-
大学时候没有学习面向对象语言
-
所有思想都是从Delphi开始接受,其实就是进入公司后开始学习的。
-
由于没有面向过程语言的困扰,所有的面向对象思想,都顺其自然地接受,认为天然如此而已。
一开始的时候,我还给我的系列,命名为《Inside Object》,我发现,其实大家很多时候都是从一个Outer到另一个Outer。开玩笑地讲,说不定以后又会想写《Out Of Object》系列了。不过,那是后话了。
观察上面的,有一个共同的情况,那就是面向对象并不是一开始就能接受的。往往需要通过好几年的反复才能深入理解。在S君刚上面向对象课程的时候,他的老师就非常明智地指出,你们一开始不可能理解得了面向对象,现在你们所需要着的是,记住他们!
另外,我们也应该关注到,我们在和人沟通面向对象思想的时候,需要注意到理解的层次。而如果我们愿意帮助别人在这方面成长,是否也要关注学习的阶梯呢?
说是学习史,其实更是想和大家一起讨论一下如何来学习面向对象思想。欢迎大家反馈,说说你们的学习心得。
分享到:
相关推荐
本书的第一部分回顾了面向对象的基本概念及面向对象技术的发展史。这些历史背景对于理解现代面向对象设计的起源和发展轨迹非常重要。 #### 面向对象设计的原理 面向对象设计不是一项孤立的技术,它建立在一系列设计...
#### 一、面向对象编程语言的发展史 面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,其核心在于将现实世界中的对象及其属性和行为映射到软件系统中,从而使得程序更加直观、易于理解...
### 面向对象语言演变的哲学辨识 #### 摘要与背景介绍 本文旨在探讨面向对象(OO)编程语言的发展历程及其背后的哲学思考。面向对象编程作为一种设计理念,经历了从具体到抽象,再到回归具体的演变过程。随着软件...
《C++面向对象程序设计》是一门深入探讨C++编程语言中面向对象特性的课程,旨在帮助学习者理解和掌握如何利用C++进行高效且可维护的面向对象编程。本课程内容涵盖广泛,从基础概念到高级技巧,提炼了多本经典教材的...
在本文档中,作者史贵才和葛修润探讨了面向对象方法在有限元分析中的应用,并通过VC++与Matlab的混合编程实现了三维脆塑性有限元分析软件。 首先,面向对象编程(Object-Oriented Programming,简称OOP)的核心思想...
3. **面向对象编程**:`Java基础[03-面向对象].ppt`深入讲解了Java的面向对象特性,包括类、对象、封装、继承、多态等核心概念,这些都是Java强大之处,也是现代软件开发的关键。 4. **继承**:`Java基础[04-继承下...
6. **06类设计题目-面向对象(基础)_01**:通过实例题目的解析,帮助学习者将理论知识应用于实际问题,提高解决问题的能力。 7. **07作业讲解**:可能包含对课后作业的详细解答,有助于巩固所学知识,理解并应用到...
6. **面向对象编程**:Python支持面向对象编程,类(class)是创建对象的蓝图,对象是类的实例。类包含属性(数据成员)和方法(类函数)。 7. **文件操作**:Python提供了一系列的内建函数和模块进行文件操作,如...
计算机语言发展史是计算机科学中一个非常重要的领域,涵盖了机器语言、汇编语言、高级语言、结构化语言、面向对象语言等多个阶段。下面我们将对这些语言的发展进行详细的介绍。 MACHINE LANGUAGE(机器语言) ...
9. **学习策略**:使用这个史上最全的Java2实用教程,学习者应遵循从基础到进阶的学习顺序,先理解基本语法,再深入到面向对象设计,最后通过实际项目巩固技能。同时,结合课件、源码和习题,进行反复练习,理论与...
面向对象编程语言的兴起是计算机语言发展史上的重要里程碑,它推动了软件工程的发展,促进了软件重用、模块化和数据抽象等编程理念的普及。面向对象编程(OOP)的四大原则——封装、抽象、继承和多态,被广泛应用于...
这份"计算机语言发展史大全"涵盖了从早期的机器语言、汇编语言,到高级编程语言,再到现代的脚本语言和面向对象语言的整个演变过程。 在计算机的早期,人们直接使用机器语言,这是一种二进制代码,由0和1组成,对应...
面向对象的分析(OOA)关注问题域的建模,而面向对象的设计(OOD)则将这些模型转化为实际系统的软件设计,考虑具体实现的细节。OOA和OOD是面向对象软件工程方法的核心,它们使得软件设计更加灵活,适应性强,能够更...
从 VB 4.0 开始,VB 也引入了面向对象的程序设计思想。VB 的功能强大,学习简单,而且VB 还引入了“控件”的概念,使得大量已经编好的 VB 程序可以被我们直接拿来使用。 2002年,微软将.NET Framework 与 Visual ...
UML是OMG于1997年11月批准的标准建模语言,是20多年来面向对象技术发展史上的重大里程碑。本书首先扼要介绍UML的发展历史,然后详细介绍UML的用例图、类图、对象图、交互图(顺序图和合作图)、状态图、活动图、构件...
教材会介绍结构化设计与面向对象设计这两种设计范式,并讲解设计模式这一软件设计中的重要组成部分,帮助学习者掌握如何构建高质量、高可维护性的软件系统。 紧接着,第5章至第10章和第12章至第14章覆盖了软件构造...
通过这套教程,你可以系统地学习C++的基础语法、面向对象编程、模板元编程以及C++11引入的新特性,如右值引用、lambda表达式、类型推断等。 源代码部分是学习过程中不可或缺的实践素材。每个子文件夹代表了不同阶段...