- Visual Basic .NET程序設(shè)計(第3版)
- 陸漢權(quán) 馮曉霞 方紅光編著
- 2096字
- 2018-12-26 18:30:17
1.7 什么是VB.NET的面向?qū)ο缶幊?/h2>
有了上面的VB.NET示例程序的例子,我們就可以把IDE環(huán)境下的編程歸納為按照一個確定的步驟去解決問題。這只是簡單的過程,真正富有創(chuàng)造性的和最困難的工作是進行程序主體的設(shè)計。
1.今天的程序交互
今天的計算機中GUI界面(如Windows)已經(jīng)是主流,因此利用圖形進行信息交互就成為程序設(shè)計的一個重要部分,本書將主要介紹窗體應(yīng)用程序的創(chuàng)建。早期的程序設(shè)計需要編程者在屏幕上一點一點地“畫”圖,更難的是,在編程時看不到這些點變?yōu)閳D的效果。隨著GUI技術(shù)的發(fā)展,窗口(包括控制菜單按鈕、最大/最小化窗口、關(guān)閉窗口,改變窗口大小等按鈕)、菜單、工具按鈕、對話框等GUI部件幾乎是每個應(yīng)用程序都必需的,因此語言開發(fā)商把這些公共部件預(yù)先定制,編程者使用這些定制部件時,只要給這些部件進行屬性設(shè)置(如取名、改變顏色、添加標題等),就可以在看得見的情況下完成界面的設(shè)計。
這種變化本身大大簡化了應(yīng)用程序設(shè)計,因為GUI要占到整個程序代碼的80%,如果代碼全部由編程者完成,工作量非常之大。另外一個激動人心的改變是,只要你掌握了編程語言,不一定是專業(yè)人員,同樣可以設(shè)計出過去只有專業(yè)人員才能完成的軟件!
軟件是計算機的靈魂,軟件或者叫做程序的開發(fā)需要技術(shù),更需要進行有效的“構(gòu)造”。構(gòu)造是體系,也包括方法。采用框架結(jié)構(gòu)建筑物的建設(shè)速度遠比秦磚漢瓦式的方法快。若我們把軟件開發(fā)也比做一個建筑過程,就能夠比較容易地理解其構(gòu)造及其方法的重要性。
2.面向過程和面向?qū)ο?/p>
一般說來,程序設(shè)計有面向過程和對象兩種方法,本書不打算展開討論。我們僅以VB.NET為例簡單地給出一些概念,而且建議讀者在學習完本書的相關(guān)內(nèi)容以后再回頭看看本章有關(guān)程序、程序設(shè)計、面向?qū)ο蟮囊恍┙忉專Ч苍S會更好。
(1)面向過程的編程
過程(Process)是傳統(tǒng)的編程方法。程序按照事先設(shè)計好的順序執(zhí)行。
為了解決某一個問題,如果你使用面向過程的方法設(shè)計程序,就必須知道解決這個問題的具體“過程”。也就是說,你要把解決的問題分解為一個個可以預(yù)期的步驟,然后為每個步驟設(shè)計一個算法,并讓程序按照設(shè)計好的順序解決這些問題。過程化編程語言中的每個語言元素,要么是對數(shù)據(jù)進行操作,要么是控制下一步執(zhí)行的順序。
本書的第3~5 章介紹的順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)就是面向過程編程的。我們通常接受VB 6.0是面向?qū)ο缶幊陶Z言的說法,實際上在代碼設(shè)計時,沿用的技術(shù)還是面向過程的。當然,沒有必要刻意去定位這段程序采用的是哪種編程技術(shù)。
(2)面向?qū)ο蟮木幊?/p>
面向?qū)ο螅∣bject)的編程采用與面向過程編程完全不同的方式解決問題。如果我們把數(shù)據(jù)當作對象,面向?qū)ο蟮某绦蚓褪且獙@些數(shù)據(jù)進行的一系列操作。
在結(jié)構(gòu)化編程中,數(shù)據(jù)和操作是分開的,不同的程序使用不用的數(shù)據(jù)。而在面向?qū)ο蟮木幊讨?,編程者必須首先定義類(對象或稱為實例的抽象)的數(shù)據(jù)和對這些數(shù)據(jù)的操作,再對其實例化,因此數(shù)據(jù)和操作是一個結(jié)合體。在這里,對象是主動的。
3.VB中的對象
1.4.1節(jié)中提及過“類”的概念,它是面向?qū)ο缶幊讨械闹饕獌?nèi)容,由于窗體就是一個類,創(chuàng)建窗體Form1就是創(chuàng)建了一個類,我們可以用記事本打開例1-1中的Demo.vb,可以發(fā)現(xiàn)它的首行就是Public Class Demo1。后面還會經(jīng)常使用這些類。
VB 有許多類庫可以供用戶使用,編程者也可以自己定義類。VB.NET 把自己定位于基于面向?qū)ο蟮某绦蛟O(shè)計語言。
例1-1中使用了VB的窗體和標簽控件,其實標簽也是類。當我們把標簽添加到窗體上的時候,IDE就自動為這個“標簽”類創(chuàng)建了一個對象,我們可以通過標簽發(fā)送信息,如通過標簽把發(fā)送的信息顯示在屏幕上。
有時,我們不一定要注意它們是如何通過“類”進行數(shù)據(jù)操作的,只是簡單運用了這些“類”。VB 成功地將這些“類”作為編程語言的一部分,因此編程者不一定要考慮類的某些更復(fù)雜的操縱技術(shù),如類的封裝、繼承和多態(tài)等。本書中也盡量淡化有關(guān)結(jié)構(gòu)化、過程化、對象以及看上去比較抽象的術(shù)語,這些對象僅在第16章進行介紹,本書關(guān)注發(fā)揮VB的集成特性來設(shè)計我們需要的程序。
VB 的另外一個特點是采用了“事件驅(qū)動”的編程機制。在VB中,一個對象可以產(chǎn)生多個事件,而每個事件通過一段程序代碼(稱為事件過程)響應(yīng)并處理。簡單地說,VB將一個按鍵、鼠標單擊、雙擊等這樣的操作都定義為“事件”,事件發(fā)生就觸發(fā)了相應(yīng)的事件過程(運行一段程序),以達到進行處理、操作的程序設(shè)計要求。
在VB中,控件就是一個對象,是一個類的實例化。本質(zhì)上,VB 應(yīng)用程序的實現(xiàn)代碼仍會采用結(jié)構(gòu)化和條理化編程機制,再加上面向?qū)ο蟮暮芏鄡?yōu)勢。
我們可以把VB的對象的相關(guān)概念簡單歸納如下。
① 對象(Object):程序代碼和數(shù)據(jù)的集合,VB中的控件都是對象。VB對象具有屬性、事件和方法三個要素。
② 對象的屬性(Property):對象的特征。在VB中,對象有共同的和不同的屬性,我們需要熟悉它們的常用屬性,如名稱、標題、字體、顏色、尺寸等。
③ 事件(Event):一種動作,大多數(shù)事件都是事先預(yù)制好的,如鼠標、鍵盤都可以被定義為事件。VB的事件與對象關(guān)聯(lián),以事件過程(程序代碼)對事件進行響應(yīng)處理。
④方法(Method):對象能夠執(zhí)行的操作。例如,利用消息框輸出一個文本信息就是一種操作,或者叫做方法。
本書第2章以后的各個章節(jié)中基本上都是圍繞對象屬性、事件和方法這三個要素來介紹VB編程的。
- C語言程序設(shè)計案例教程
- TypeScript Essentials
- Java程序設(shè)計(慕課版)
- Rust實戰(zhàn)
- C語言程序設(shè)計基礎(chǔ)與實驗指導(dǎo)
- Dependency Injection in .NET Core 2.0
- 人人都懂設(shè)計模式:從生活中領(lǐng)悟設(shè)計模式(Python實現(xiàn))
- Java實戰(zhàn)(第2版)
- Julia 1.0 Programming Complete Reference Guide
- Illustrator CC平面設(shè)計實戰(zhàn)從入門到精通(視頻自學全彩版)
- 零基礎(chǔ)輕松學C++:青少年趣味編程(全彩版)
- Java Web開發(fā)基礎(chǔ)與案例教程
- RESTful Web API Design with Node.js
- Visual FoxPro程序設(shè)計實驗教程
- Magento 2 Developer's Guide