`
shangjava
  • 浏览: 1199683 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

探討OOP

阅读更多

探討OOP

  有一個笑話: 

一個人到了硅谷,發現有賣猴子的,一只1000美元,一問,原來這只猴子能寫出風格良好的C語言代碼;在旁邊還有另一只猴子,標價5000美元,那人奇怪的問老板: 它會甚麼?

老板回答: 它會寫C++代碼,面向對象的,很流行喔!

流行的確很誘人,我也是因為流行,才開始學習C++的。但是流行的並不一定就好,比如非典。

?<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Koening大師有一句名言: 用類來表示概念。其實Bijarney在發明C++的時候,目的也就是讓每一個概念清晰化。

台灣人管面向對象叫: ”物件導向,這種說法非常形象。我們的動作都是作用在某種事物(物件)上的,把這個物件連同對它的動作合併起來,就是一個物件導向模型。

面向對象程序開發的好處在於封裝,每一個概念和相關的操作都被組合成了一個整體,類的實例是對象,對象之間通過消息傳遞來相互作用,而對彼此的具體實現不用關心。這樣,我們只需要關心每一個概念是否正確,而不用管概念之間出了甚麼事情。

?

面向對象的另一個好處是組合繼承。車輪和車架兩個類組合成了車子,而摩托車繼承了自行車的所有功能還有自己的額外功能。

彼此之間配合的類可以組合,彼此之間有功能涵蓋關係的類可以繼承。這點需要尤其注意,否則就會出現一個鴕鳥類居然有的方法。

一只公雞抓著剛下蛋的母雞痛打,為甚麼? 因為那只母雞下了一個鴨蛋。

OOP是個雙面斧,它可以讓你更輕鬆,也可以生出許多莫名其妙的錯誤來。

?

對於科學計算以及其他面向數據的操作,OOP並沒有優勢。科學家們完全沒有必要編寫一個高階偏微分方程類用于科學計算。相反,如果採用FORTRAN這樣的結構化語言,則無論效率還是程序的質量,可以預期都是遠遠超過OOP語言的。

而在面向事務處理,還有Windows應用程序,OOP的優勢就很明顯了。由於OOP的封裝和可擴充性,程序具有了很好的穩定性和可維護性。

?

了解了面向對象的原理,很容易理解為甚麼它會流行,那是因為Windows流行的緣故。充分發揮個種語言的優勢,該用甚麼用甚麼,才是正確的態度。5000美元的C++並不見得就比1000美元的C更了不起。
分享到:
评论

相关推荐

    oop关键技术的探讨 传智播客中让子弹飞的代码

    oop关键技术的探讨 传智播客中让子弹飞的代码 适合初学者

    基于OOP的PLC程序设计方法研究.pdf

    #资源达人分享计划#

    javaOOP编写

    自己写的一点代码求解释求更正,不懂的很多希望大家一起探讨探讨

    用OOP探讨《数据结构》的教学思想和方法.pdf

    #资源达人分享计划#

    Java面向对象编程头歌

    - **高级特性**:深入探讨抽象类与接口、内部类、匿名类、泛型编程等高级OOP特性。 - **设计模式**:讲解常用的设计模式如单例模式、工厂模式、观察者模式等在Java中的实现及应用。 2. **示例代码**: - **基础...

    OOP中继承机制剖析

    研究了继承的特点,通过程序实例,进行对比分析,探讨了C++语言中由继承带来的属性的隐藏和方法的覆盖、遮蔽等重要性质,得出使用继承不仅可以使得大量的代码可以复用,而且可以大大减少代码和数据的冗余度,同时由...

    计算机专业毕业设计论文(C++)外文文献中英文翻译(Object)

    计算机专业毕业设计论文(C++)外文文献中英文翻译(Object),共13页 Object landscapes and lifetimes Technically, OOP is just about abstract data typing, inheritance, and polymorphism,...本节将就这些问题进行探讨

    基于OOP技术的嵌入式数字地图设计与实现* (2005年)

    吸取了目前流行的GIS系统的一些特点,并结合车载导航系统的特殊要求,分析了如何从底层构造开始来设计与实现基于嵌入式系统的开放式数字地图,同时对主要模块中涉及的关键技术进行了相应的探讨。该系统充分利用OOP...

    behavioural-subtyping:OOP 行为子类型检查器

    这篇文章深入探讨了这种可能性。 合同由开发人员以形式逻辑编写为 Java 注释。 然后将它们组合成更复杂的公式,并提供给 Microsoft Research 的 。 支持两种注释: **Requires**: Preconditions for methods. *...

    探讨PHP中this,self,parent的区别详解

    {一}PHP中this,self,parent的区别之一this篇面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员的一项基本技能。利用OOP的思想进行PHP的高级编程,对于提高PHP编程能力和规划web开发构架都是很有意义...

    数据结构(c#语言版)

    以OOP的视角看数据结构; 探讨.net底层机制 解析c#中的数据类型的本质

    二十三种设计模式迷你手册

    关于设计模式 Java,深刻探讨了关于软件设计模式问题,基于Java ,应用于OOP

    C#中的继承和多态构建一个定义明确的类类型

    研究了oop的第一个支柱封装,探讨了如何使用继承来构建一族相关类

    VC++对象模型详解

    深入而全面的探讨VC++编程环境下的对象模型,帮助你理解OOP思想的底层机制。

    matlab面向对象编程教程-A Guide to MATLAB Object-Oriented Programming - Register, CRC 2007.rar

    在上一节为基础,它继承专题探讨,并提出了类向导,一个强大的MATLAB的类生成工具。最后一节将深入讨论先进的战略,包括集装箱,静态变量和功能方面。 拥有超过20年的经验,制定和实施面向对象的软件,专家作者已经...

    JS继承与闭包及JS实现继承的三种方式

    在之前的两篇博客中,我们详细探讨了JavaScript OOP中的各种知识点(JS OOP基础与JS 中This指向详解 、 成员属性、静态属性、原型属性与JS原型链)。今天我们来继续探讨剩余的内容吧。 我们都知道,面向对象的三大...

    Delphi XE3编程语言自学指南-2012.pdf

    高级主题:探讨更高级的编程概念和技巧,如面向对象编程(OOP)、组件使用、文件操作等。 书中还包含了对Delphi编程环境的介绍,如项目管理、代码编辑器、对象检查器等工具的使用,以及如何创建和管理项目文件。此外,...

    ASP.NET 2.0网络编程自学手册.pdf

    (版本是低了点,但是有些函数的应用对OOP-面向对象的有些思想还是有些启发作用) ASP.NET 2.0 是 Microsoft 公司推出的 Web 开发平台,也是目前最先进、特征最丰富、功 能最强大的 Web 开发平台。ASP.NET 2.0 ...

    Java类及对象实验报告.doc

    在本实验中,我们没有使用继承和多态,但是它们是Java语言的重要特征,将在以后的实验中进行探讨。 六、实验结果 通过本实验,我们掌握了Java语言的基本概念,了解了类和对象的概念,了解了类的封装方法,以及如何...

    java对象的概念-new.docx

    在本章,我们将探讨 Java 程序的基本组件,并体会为什么说 Java 乃至Java 程序内的一切都是对象。 2.1 用句柄操纵对象 每种编程语言都有自己的数据处理方式。有些时候,程序员必须时刻留意准备处理的是什么类型。...

Global site tag (gtag.js) - Google Analytics