- C++面向?qū)ο蟪绦蛟O(shè)計(jì)(第三版)
- 陳維興 林小茶
- 839字
- 2019-10-25 14:55:27
1.1 面向?qū)ο蟪绦蛟O(shè)計(jì)概述
1.1.1 面向?qū)ο蟪绦蛟O(shè)計(jì)的定義
面向?qū)ο蟪绦蛟O(shè)計(jì)(Object-Oriented Programming,OOP)是一種新的程序設(shè)計(jì)范型。程序設(shè)計(jì)范型是指設(shè)計(jì)程序的規(guī)范、模型和風(fēng)格,它是一類程序設(shè)計(jì)語言的基礎(chǔ)。一種程序設(shè)計(jì)范型體現(xiàn)了一類語言的主要特征,這些特征能用以支持應(yīng)用領(lǐng)域所希望的設(shè)計(jì)風(fēng)格。不同的程序設(shè)計(jì)范型有不同的程序設(shè)計(jì)技術(shù)和方法。
面向過程程序設(shè)計(jì)范型是使用較廣泛的程序設(shè)計(jì)范型,這種范型的主要特征是:程序由過程定義和過程調(diào)用組成(簡(jiǎn)單地說,過程就是程序執(zhí)行某項(xiàng)操作的一段代碼,函數(shù)是最常用的過程)。從這個(gè)意義出發(fā),基于面向過程的程序可以用下面的公式來表述:
程序=過程+調(diào)用
基于面向過程程序設(shè)計(jì)范型的語言稱為面向過程性語言,如C、Pascal、FORTRAN、Ada等都是典型的面向過程性語言。除面向過程程序設(shè)計(jì)范型外,還有許多其他程序設(shè)計(jì)范型。例如,函數(shù)式程序設(shè)計(jì)范型也是較為流行的程序設(shè)計(jì)范型,它的主要特征是:程序被看作“描述輸入與輸出之間關(guān)系”的數(shù)學(xué)函數(shù),LISP是支持這種范型的典型語言。此外,還有模塊程序設(shè)計(jì)范型(典型語言是Modula)、邏輯式程序設(shè)計(jì)范型(典型語言是PROLOG)、進(jìn)程式程序設(shè)計(jì)范型、類型系統(tǒng)程序設(shè)計(jì)范型、事件程序設(shè)計(jì)范型、數(shù)據(jù)流程序設(shè)計(jì)范型等。
面向?qū)ο蟪绦蛟O(shè)計(jì)是一種新的程序設(shè)計(jì)范型。這種范型的主要特征是:
程序=對(duì)象+消息
面向?qū)ο蟪绦虻幕驹厥菍?duì)象,面向?qū)ο蟪绦虻闹饕Y(jié)構(gòu)特點(diǎn)是:第一,程序一般由類的定義和類的使用兩部分組成;第二,程序中的一切操作都是通過向?qū)ο蟀l(fā)送消息來實(shí)現(xiàn)的,對(duì)象接收到消息后,啟動(dòng)有關(guān)方法完成相應(yīng)的操作。一個(gè)程序中涉及的類,可以由程序設(shè)計(jì)者自己定義,也可以使用現(xiàn)成的類(包括類庫中為用戶提供的類和他人已構(gòu)建好的類)。盡量使用現(xiàn)成的類,是面向?qū)ο蟪绦蛟O(shè)計(jì)范型所倡導(dǎo)的程序設(shè)計(jì)風(fēng)格。
需要說明的是:某一種程序設(shè)計(jì)語言不一定與一種程序設(shè)計(jì)范型相對(duì)應(yīng)。實(shí)際上存在具備兩種或多種范型特征的程序設(shè)計(jì)語言,即混合型語言。例如,C++就不是純粹的面向?qū)ο蟪绦蛟O(shè)計(jì)范型的語言,而是具有面向過程程序設(shè)計(jì)范型和面向?qū)ο蟪绦蛟O(shè)計(jì)范型的混合型程序設(shè)計(jì)語言。
- TypeScript Essentials
- Implementing Modern DevOps
- HTML5移動(dòng)Web開發(fā)技術(shù)
- Learning Cython Programming(Second Edition)
- C++ Builder 6.0下OpenGL編程技術(shù)
- Python自動(dòng)化運(yùn)維快速入門
- Designing Hyper-V Solutions
- UML+OOPC嵌入式C語言開發(fā)精講
- TypeScript圖形渲染實(shí)戰(zhàn):基于WebGL的3D架構(gòu)與實(shí)現(xiàn)
- 3D少兒游戲編程(原書第2版)
- AppInventor實(shí)踐教程:Android智能應(yīng)用開發(fā)前傳
- Citrix XenServer企業(yè)運(yùn)維實(shí)戰(zhàn)
- JavaScript動(dòng)態(tài)網(wǎng)頁編程
- 零基礎(chǔ)學(xué)Scratch 3.0編程
- OpenCV Android Programming By Example