国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

理解面向?qū)ο缶幊?/h1>
2019-11-18 17:44:51
字體:
供稿:網(wǎng)友
一、什么是對象


  學(xué)好VB的訣竅之一就是要以“對象”的眼光去看待整個程序設(shè)計。“對象”是面向?qū)ο蟪绦蛟O(shè)計的核心,明確這個概念對理解面向?qū)ο蟪绦蛟O(shè)計來說至關(guān)重要。那么,對象是什么?在程序中怎么沒有看到對象呢?


  其實對象在VB的程序設(shè)計中的地位,就像空氣一樣無處不在。以上一篇文章中的應(yīng)用程序為例,程序中使用的按鈕就是對象,應(yīng)用程序本身也是一個對象。


  對象的概念并不神秘,它的來源就在生活之中。在現(xiàn)實生活中,其實我們隨時隨地都在和對象打交道——我們騎的車、看的書以及我們自己,在一個VB程序員眼中無一例外都是對象。


  如果把問題抽象一下,會發(fā)現(xiàn)這些現(xiàn)實生活中的對象有兩個共同的特點:第一,它們都有自己的狀態(tài),例如一個球有自己的質(zhì)地、顏色、大小;第二、它們都具有自己的行為,比如一個球可以滾動、停止或旋轉(zhuǎn)。在面向?qū)ο蟮某绦蛟O(shè)計中,對象的概念就是對現(xiàn)實世界中對象的模型化,它是代碼和數(shù)據(jù)的組合,同樣具有自己的狀態(tài)和行為。只不過在這里對象的狀態(tài)用數(shù)據(jù)來表示,稱為對象的屬性;而對象的行為用對象中的代碼來實現(xiàn),稱為對象的方法。不同的對象有不同的方法,當(dāng)然也不排除有部分重疊。


  以上篇文章為例,你的第一應(yīng)用程序中有如下的對象:窗體(Form),標(biāo)簽(Labels),文本框(Textboxes)。


  在你的第一個應(yīng)用程序中,你對fTxt和cTxt這兩個文本框進行編碼,使你在按下回車鍵后,能完成攝氏和華氏的互換。這個互換我們稱之為過程,也就是在這里說的行為。這個行為是通過按回車引發(fā)(當(dāng)然你也可以換成其它鍵,只要在程序代碼中將keyascii的數(shù)字換一下就行了),這個按鍵動作我們稱之為事件,它是能被對象所識別的動作,一個對象可以有很多事件,例如鼠標(biāo)單擊或雙擊、對象失去焦點或得到焦點等。而實現(xiàn)這個過程的代碼我們稱之為方法,方法決定了對象可以進行的動作,它的內(nèi)容是不見的。


  概而言之,編VB程序就是首先根據(jù)你的需要放置對象,設(shè)置對象的屬性,然后為你所想要的對象事件編制過程,通過過程完成你預(yù)期的目的。因此可以這樣說,VB程序是由“事件驅(qū)動”的,“事件驅(qū)動”的意思是說只有在事件發(fā)生時,程序才會運行。在沒有事件的時候,整個程序是處于停滯狀態(tài)的,這一點和DOS程序有極大的差別。在VB設(shè)計程序中,在程序中流動的不是數(shù)據(jù)而是事件。如果說屬性決定了對象的外觀,方法決定了對象的行為,那么事件就決定了對象之間聯(lián)系的手段。


二、VB的對象如何識別事件


  用戶不必關(guān)心所使用的對象需要響應(yīng)的事件類型,因為VB的每一個窗體和控件都有一個預(yù)定義的事件集,它們能夠自動識別屬于事件集中的事件。對象所識別的事件類型多種多樣,但多數(shù)類型為大多數(shù)控件所共有。例如一個命令按鈕和窗體都有可以對Click,Dblick(雙擊)這樣的事件做出響應(yīng)。而某些事件只可能發(fā)生在某些對象上。


  相同事件發(fā)生在不同對象上所得到的反應(yīng)是不一樣的,造成這種差異是“事件過程”的緣故。每個對象對每個可以識別的事件都有一個“事件過程”,當(dāng)事件過程不同時,對事件所表現(xiàn)出來的反應(yīng)自然也會不同。例如在你的第一個應(yīng)用程序中,在fTxt中按回車是將華氏轉(zhuǎn)換成攝氏,而在cTxt中按回車則將攝氏轉(zhuǎn)換成華氏。


三、事件驅(qū)動的真實工作過程


  在VB程序設(shè)計中,最基本的設(shè)計機制就是改變對象的屬性、使用對象的方法和為對象事件編寫事件過程。雖然對象可以自動識別事件,但是如果沒有必要的話,用戶不必為所有的事件都編寫事件過程,Windows系統(tǒng)會以默認(rèn)的方式來處理事件。當(dāng)用戶覺得在程序中不需要對一個事件進行額外的處理時可以不去理會它。使用VB編程的妙處就在于,只有當(dāng)用戶要以某種特定的方式響應(yīng)某個事件時,才需要編寫針對這個事件的事件過程。


下面列出了事件驅(qū)動應(yīng)用程序中的典型事件序列:


1、啟動應(yīng)用程序,裝載和顯示窗體,產(chǎn)生Form_Load和Form_Show事件


2、窗體或窗體上的控件接收事件,事件可由用戶引發(fā)(例如鍵盤或鼠標(biāo)操作),可由系統(tǒng)引發(fā)(例如定時器事件),也可由代碼間接引發(fā)(例如當(dāng)代碼裝載其他窗體時產(chǎn)生的Load事件)


3、如果在相應(yīng)的事件過程中存在代碼,就執(zhí)行代碼


4、應(yīng)用程序等待下一次事件


  對初學(xué)者而言,理解面向?qū)ο缶幊虒τ谝院筮M行程序設(shè)計是至關(guān)重要的,所以讀完這篇文章后請你認(rèn)真回憶一下這幾個概念是否清楚——對象、事件、方法和事件過程。如果你還有什么不明白的話,可以來信給我,我會盡力解答。->


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

主站蜘蛛池模板: 揭阳市| 遂川县| 疏勒县| 南昌市| 耒阳市| 塘沽区| 泾源县| 华亭县| 平阴县| 元氏县| 云南省| 榆中县| 建昌县| 马关县| 莱州市| 荥阳市| 宜宾县| 蓝田县| 蒙自县| 芜湖县| 宜阳县| 滁州市| 凤凰县| 花莲市| 丽江市| 无锡市| 道真| 威海市| 离岛区| 桦南县| 三穗县| 巩义市| 宁乡县| 册亨县| 黔东| 曲靖市| 浑源县| 剑河县| 青州市| 松原市| 丰都县|