探討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中的事件、委托、多态和继承等核心概念。 首先,让我们来看一下事件。在C#中,事件是一种特殊的委托类型,用于在对象之间传递通知。当某个条件满足时,一个对象(事件发布者)可以触发事件,而...
本知识点将深入探讨OOP的关键概念,并结合Android开发的实践场景,帮助开发者提升代码质量。 首先,我们要理解OOP的四大核心原则:封装、继承、多态和抽象。封装是将数据和操作数据的方法绑定在一起,对外提供有限...
"oop.rar_Will"这一文件名,暗示了我们将深入探讨OOP的概念,并以此为基础,激发我们对未来的决心和斗志。 面向对象编程是一种程序设计范式,它基于“对象”的概念,将数据和操作数据的方法封装在一起,实现了代码...
这里我们将深入探讨OOP在报文解析中的应用以及与698报文相关的知识。 面向对象编程是一种编程范式,它通过将数据和操作数据的方法封装在一起形成对象,来模拟真实世界中的实体。在报文解析场景下,OOP允许我们构建...
本章将深入探讨OOP中的对象和封装这两个关键概念。 首先,让我们理解什么是对象。在计算机科学中,对象是类的实例。类是创建对象的蓝图或模板,它定义了对象的数据属性和行为。在Java中,我们通过定义类来创建对象...
下面我们将深入探讨OOP的关键概念以及在这个项目中可能出现的组件。 1. 面向对象编程(OOP)基础: - 类与对象:在OOP中,类是创建对象的模板,它定义了对象的属性(数据成员)和行为(方法)。对象是类的实例,...
下面我们将深入探讨OOP的基本概念、原则以及在Java中的实现。 1. **类与对象**: - **类**:是创建对象的蓝图或模板,定义了一组特性和行为。在Java中,我们使用`class`关键字来声明一个类。 - **对象**:是类的...
下面我们将深入探讨OOP的一些关键概念和原理。 1. **类与对象**: - **类**:类是创建对象的模板或蓝图,定义了一组属性(数据成员)和方法(成员函数)。在Java和C#中,我们使用关键字`class`来声明一个类。 - *...
本章节将深入探讨OOP的核心概念、起源及其在现代编程语言中的应用,特别是与Objective-C这一特定语言的关系。 ### OOP的基本概念 OOP的核心理念是将数据和操作这些数据的函数封装在一起,形成“对象”。对象可以被...
本篇文章将详细探讨OOP测试的各个方面。 首先,我们要理解OOP测试的目的。测试的主要目标是验证代码的正确性、性能、可维护性和健壮性。在OOP项目中,测试有助于发现潜在的bug、接口不匹配、设计缺陷等问题,以便...
首先,我们来探讨OOP的基本概念: 1. 类(Class):类是对象的模板,定义了对象的属性(数据成员)和行为(成员函数)。在俄罗斯方块游戏中,可能有如`Block`(方块)、`GameBoard`(游戏板)、`Player`(玩家)等类...
下面我们将详细探讨OOP的一些关键概念和实践方法。 一、面向对象编程基础 面向对象编程是一种编程范式,它基于“对象”这一概念,将数据和操作数据的方法封装在一起。在OOP中,我们首先定义类(Class),类是对象的...
本文将深入探讨OOP在自动化项目开发中的应用,以及它如何提升项目的可维护性、可扩展性和可重用性。 一、面向对象的基本概念 面向对象编程的核心思想是将复杂的问题分解为一系列相互关联的对象,每个对象都有自己...
本文将深入探讨OOP的概念以及在CODESYS V3中的应用。 首先,我们需要理解OOP的四大核心原则: 1. 封装(Encapsulation):封装是将数据和操作这些数据的方法绑定在一起,形成一个独立的对象。在CODESYS V3中,可以...
在这个"网络讲坛:面向对象的编程(上)"中,我们可能会深入探讨OOP的基本原理和实践。 首先,我们要理解什么是“对象”。在编程世界里,对象是程序中的一个实例,它包含了数据(也称为属性或成员变量)和能够操作...
在本章中,我们将深入探讨OOP的核心概念、它与面向过程编程的区别以及Java中OOP的实践。 首先,了解编程思路的发展历程,从面向过程到面向对象是一个显著的进步。面向过程编程着重于顺序执行的步骤,以函数或子程序...
接下来,我们将探讨OOP的开发方法: 1. **设计模式(Design Patterns)**:设计模式是解决常见问题的成熟解决方案,如单例模式、工厂模式、观察者模式等。它们是面向对象设计的经验总结,可以帮助开发者写出可维护...
本笔记将深入探讨OOP的原理、特性以及在C++中的实现方式。** **一、面向对象编程基础** 1. **封装**:封装是OOP的基础,它将数据和操作数据的方法绑定在一起,形成一个独立的单元——对象。在C++中,我们通过`...
在“JBuider第四章:面向对象概念和实现2”这个教程中,我们将深入探讨OOP的基本概念和在Java中如何实现它们。本章节可能涵盖了以下几个关键知识点: 1. 类与对象 - **类** 是OOP中的蓝图,它定义了具有相同属性和...
从提供的文件内容来看,该研究探讨了在PLC编程中应用OOP方法的优势。作者指出,传统的PLC梯形图编程虽然在编程难度上有所降低,但在编写大规模项目程序时仍然面临挑战。OOP提供了一种新的编程思路,通过为不同类型的...