導航:首頁 > 源碼編譯 > 面向對象怎麼編譯

面向對象怎麼編譯

發布時間:2023-07-19 01:54:35

A. Delphi面向對象的編程方法(一)

Delphi的編程語言是以Pascal為基礎的 Pascal語言具有可讀性好 編寫容易的特點 這使得它很適合作為基礎的開發語言 同時 使用編譯器創建的應用程序只生成單個可執行文件( EXE) 正是這種結合 使得Pascal成為Delphi這種先進開發環境的編程語言

本章中 我們將討論Object Pascal的主要特點 並講解如何在事件處理過程和其他應用程序中 使用它來編製程序代碼握液 本章將講解Delphi應用程序中最常用的Object Pascal語法 而不是Pascal語言的一切細節 如果您完全不熟悉Pascal編程 請參閱一些基礎的Pascal教程 如果您具有編程經驗 並能熟練地使用其他流行程序語言 您將在本章的Object Pascal中發現一些相同的概念 如果您已經熟悉了Borland Pascal 就可以快速瀏覽或跳過本章

編寫Object Pascal程序代碼

在本章中 我們將從熟悉Pascal編程的角度 配合實例 講解Object Pascal編程的基本方法

在編寫自己的Object Pascal程序時 要注意程序的可讀性 Pascal語言是英式結構語言 在程序中選擇合適的縮排 大小寫風格 並在需要時將程序代碼分行 會使得程序代碼能夠很容易地被自己和他人讀懂 一般的程序員都有這樣的體驗 如果不給程序加上適當的註解 一段時間後 自己也難以理清程序的流程 給程序及時地加上芹宏注釋是良好的編程習慣 Delphi的注釋需要加註在{}之間 編輯器會把它們處理成為空白 Delphi保留了Borland Pascal編輯器的風格 關鍵字採用黑體字 被注釋的部分會變暗 這使得編程風格良好 易讀易寫

編寫賦值語句

在事件處理過程中 最常用到的工作就是把一個新值賦給一個屬性或變數 在設計用戶界面時 可以使用Object Inspector(Object Inspector)來改變其屬性 但有時需要在程序執行時改變屬性的值 而且有些屬性只能在執行時改變 這些屬性在Delphi的在線幫助的 Proprety 主題中被標為執行期屬性 進行這種改變 就必須使用賦值語句

下文的賦值語句表徵一個OnClick事件 當按鈕按動後 將編輯框部件Edit 的Color屬性置為clRed:procere TForm Button Click(Sender: TObject);beginEdit Color := clRed;end;

當按動按鈕後賦值語句被執行 編輯框變成紅色

在語句中 部件的名稱在屬性前 中間用 表示屬性的所屬關系 這樣就准確地指定了要將clRed值賦給哪一部件的哪一屬性 賦值號為 := 不論給屬性還是給變數賦值 都是將右邊的值賦給左邊的屬性或變數

當將一個屬性值 變數 常量或文本數據賦給屬性或變數時 所賦值的類型和接受此值的屬性或變數的類型應相同或兼容 一個屬性或變數的類型定義了此屬性或變數的可能值集合 也定義了程序代碼可以執行的運算 在前邊的常式中 編輯框部件的Color屬性和clRed的類型都是TColor 可以在在線幫助中找到一個屬性的類型 另外一種方法是在Object Inspector中選定該屬性值段 並按下F 鍵 則類型將在屬性說明的結尾處列出 例如Color屬性列出下邊的語句

Property Color : TColor;

有些屬性是只讀(Read Only)的 它們只能被讀取 不能被改變 請查閱在線幫助 在Delphi中這些只讀屬性都有註解

標識符的說明與使用嫌皮冊

標識符是Delphi應用程序中一些量的名稱 這些量包括變數(var) 常量(const) 類型(type) 過程(procere) 方法(Method)及其他 Object Pascal 在應用標識符時 必須首先說明它們 Object Pascal是強類型語言 它的編譯器可以檢查確保賦給變數或屬性的值是正確的類型 以便於您改正錯誤 因為Object Pascal是編譯語言 所以Delphi的執行速度要比使用解釋語言快得多 在使用標識符前說明它們 可以減少程序錯誤並增加代碼的效率

變數

變數是程序代碼中代表一個內存地址的標識符 而此地址的內存內容在程序代碼執行時可以被改變 在使用變數前必須對它進行說明 即對它進行命名 並說明它的類型 在所有變數說明以前加上保留字var 變數說明左邊是變數的名稱 右邊則是該變數的類型 中間用(:)隔開

varValue Sum : Integer;Line : String;

在窗體中加入一個名稱為Edit 的編輯框 再加入一個名稱(屬性Name)為Add的按鈕部件 並建立如下的事件處理過程

procere TForm addClick(Sender: TObject);varX Y: Integer;beginX := ;Y := ;Edit Text := IntToStr(X + Y);end;

在本例中 當按動ADD按鈕時 編輯框中顯示值 在Object Pascal中 必須確保變數或屬性被賦予類型相同或兼容的值 您可以嘗試將賦給X的值改為 或去掉IntToStr函數 在編譯時會出現類型不匹配的錯誤 這也說明了Object Pascal強類型語言的特點 Object Pascal有多個預定義的數據類型 您可以說明任何這些類型的變數

整形 Integer的范圍是 到 占 位元組的內存 Shortint從 到 占 位元組內存 Longint從 到 占 位元組內存 Byte從 到 占 位元組 Word從 到 占 位元組內存 它們都是沒有小數部分的數字

實型 Single可以包含 到 位有效小數部分 佔用 位元組的內存 Double類可以包含 到 位有效小數部分 佔用 位元組的內存 Extended類型包含 到 位有效小數部分 佔用 位元組內存 Comp可以包含 到 位有效小數部分 佔用 位元組內存 以上實數類型只有在 / 選項[N+]打開才可以使用 Real可以包含 到 位有效小數部分 佔用 位元組內存 它只有在和以前Borland Pascal兼容的情況下才使用 否則應使用Double或Extended

布爾型 Boolean 只包含true或False兩個值 佔用 位元組內存

字元型 Char 一個ASCII字元 字元串類型String一串最長可達 個ASCII字元

指針型 Pointer 可以指向任何特定類型

字元串型 PChar 是一個指向以零結尾的字元串的指針

除了預定義類型外 Delphi還有自行定義的類型 上述常式的TColor就是這種類型 此外 用戶還可以定義自己的數據類型 這部分內容將在下文中詳細講述

整型類別和實型類別都各有五種類型 同一類別中 所有的類型與其他同類別的都相容 您可以將一種類型的值賦給相同類別中不同類型的變數或屬性 而只需要這個值的范圍在被賦值的變數或屬性的可能值范圍內 例如 對於一個Shortint型的變數 可以接受在 到 范圍內的任意整數 例如Shortint類型的 您不能將 賦給它 因為 已經超出了Shortint的范圍了 將范圍檢查功能打開(選用Options|Project 並在Compiler Options Page中選擇Range Checking) 將會檢查出一個范圍錯誤 如果Range Checking沒有被打開 那麼程序代碼將可以執行 但被賦值的值將不是您期望的值

在一些情況下 您可以進行不同類型的變數或屬性的賦值 一般來說 可以將一個較小范圍的值賦給一個較大范圍的值 例如 您可以將整型值 賦給一個接受實型值的Double屬性而使得值成為 但如果將一個Double類型的值賦給整形變數 則會出現類型錯誤 如果您不清楚類型的兼容性 可以參閱Delphi的在線幫助中 Type Compatibility and Assignment Compatibility 主題

常量

常量在說明時就被賦予了一個值 在程序執行過程中是不可改變的 下面的例子說明了三個常量

constPi = ;Answer = ;ProctName = Delphi ;

象變數一樣 常量也有類型 不同的是 常量假設其類型就是常量說明中其所代表的值的類型 上文的三個常量的類型分別是real型 整形 字元串型 常量用 = 表示兩邊的值是相等的

過程與函數

lishixin/Article/program/Delphi/201311/8549

B. VB如何編譯

VB編譯方法:

編碼完成後,點擊文件——生成工程,即可。

VB是解釋性的編程語言,安裝的VB在寫好代碼了,以後 按F5也會自動處理的。

Visual Basic是一種由Microsoft公司開發的結構化的、模塊化的、面向對象的、包含協助開發環境的事件驅動為機制的可視化程序設計語言。從任何標准來說,VB都是世界上使用人數最多的語言——不管是盛贊VB的開發者還是抱怨VB的開發者的數量。它源自於BASIC編程語言。VB擁有圖形用戶界面(GUI)和快速應用程序開發(RAD)系統,可以輕易的使用DAO、RDO、ADO連接資料庫,或者輕松的創建ActiveX控制項。程序員可以輕松的使用VB提供的組件快速建立一個應用程序。

C. 面向對象程序設計主要有哪些方法

程序設計主要方法有面向結構的方法和面向對象的方法。
結構化程序設計

隨著計算機的價格不斷下降,硬體環境不斷改善,運行速度不斷提升。程序越寫越大,功能越來越強,講究技巧的程序設計方法已經不能適應需求了。記得是哪本書上講過,一個軟體的開發成本是由:程序設計 30% 和程序維護 70% 構成。這是書上嘩或改給出的一個理論值,但實際上,從我十幾年的工作經驗中,我得到的體會是:程序設計占 10%,而維護要佔 90%。也許我說的還是太保守了,維護的成本還應該再提高。下面這個程序,提供了兩種設計方案,大家看看哪個更好一些那?

題目:對一個數組中的100個元素,從小到大排序並顯示輸出。(BASIC)

方法1:冒泡法排序,同時輸出。

FOR I=1 TO 100
FOR J=I+1 TO 100
IF A[I] > A[J] THEN T=A[J]: A[J]=A[I]: A[I]=T
NEXT J
? A[I]
NEXT I

方法2:冒泡法排序,然後再輸出。

FOR I=1 TO 100
FOR J=I+1 TO 100
IF A[I] > A[J] THEN T=A[J]: A[J]=A[I]: A[I]=T
NEXT
NEXT

FOR I=1 TO 100
? A[I]
NEXT

顯然,「方法1」比「方法2」的效率要高,運行的更快。但是,從現在的程序設計角度來看,「方法2」更高級。原因很簡單:(1)功能模塊分割清晰——易讀;(2)也是最重要的——易維護。程序在設計階段的時候,就要考慮以後的維護問題。比如現在是實現了在屏幕上的輸出,也許將來某一天,你要修改程序,輸出到列印機上、輸出到繪圖儀上;也許將來某一天,你學習了一個新的高級的排序方法,由「冒泡法」改進為「快速排序」、「堆排序」。那麼在「方法2」的基礎上進行修改,是不是就更簡單了,更容易了?!這種把功能模塊分離的程序設計方法,就叫「結構化程序設計」。

面向對象的程序設計

隨著程序的設計的復雜性增加,結構化程序設計方法又不夠用了。不夠用的根本原因是「代碼重用」的時候不方便。面向對象的方法誕生了,它通過繼承來實現比較完善的代碼重用功能。很多學生在應聘工作,面試的時候,常被問及一個問題「你來談談什麼是面向對象的程序設計」,學生無言,回來問我,這個問題應該怎麼回答。我告訴他,你只要說一句話就夠了「面向對象程序設計是對數據的封裝;範式(模板)的程序設計是對演算法的封裝。」後來再有學生遇到了這個問題,只簡單的一句對答,對方就對這個學生就刮目相看了(學生後來自豪地告訴我的)。為什麼那?因為只有經過徹底的體會和實踐才能提煉出這個精華。

面向對象的設計方法和思想,其實早在70年代初就已經被提出來了。其目的就是:強製程亂判序必須通過函數的方式來操縱數據。這樣實現了數據的封裝,就避免了以前設計方法中的,任何代碼都可以隨便操作數據而因起的BUG,而查找修改這個BUG是非常困難的。那麼你可以說,即使我不使用面向對象,當我想訪問某個數據的時候,我就通過調用函數訪問不就可以了嗎?是的,的確可以,但並不是強制的。人都有惰性,當我想對 i 加1的時候,干嗎非要調用函數呀?算了,直接i++多省事呀。呵呵,正式由於這個懶惰,當程序出BUG的時候,可就不好捉啦。而面向對象是強制性的,從編譯階段就解決了你懶惰的問題。

巧合的是,面向對象的思想,其實和我們的日常生活中處理問題是吻合的。舉例來說,我打算丟掉一個茶杯,怎麼扔那?太簡單了,拿起茶杯,走到垃圾桶,扔!注意分析這個過程,我們是先選一個「對象」------茶杯,然後向這個對象施加一個動作——扔。每個對象所能施加在它上面的動作是有一定限制的:茶杯,可以被扔,可以被砸,可以用來喝水,可以敲它發出聲音......;一張紙,可以被寫字,可以撕,可以燒......。也就是說,一旦確定了一個對象,則方法也就跟著確定了。我們的日常生活就是如此。但是,大家回想一下我們程序設計和對計算機的操作,卻不是這樣的。拿DOS的操作來說,我要刪除一個文件,方法是在DOS提示符下:c:> del 文件名<回車>。注意看這個過程,動作在前(del),對象在後(文件名),和面向對象的方法正好順序團悔相反。那麼只是一個順序的問題,會帶來什麼影響那?呵呵,大家一定看到過這個現象:File not found. 「啊~~~,我錯了,我錯了,文件名敲錯了一個字母」,於是重新輸入:c:> del 文件名2<回車>。不幸又發生了,計算機報告:File read only. 哈哈,痛苦吧:)。所以DOS的操作其實是違反我們日常生活中的習慣的(當然,以前誰也沒有提出過異議),而現在由於使用了面向對象的設計,那麼這些問題,就在編譯的時候解決了,而不是在運行的時候。obj.fun(),對於這條語句,無論是對象,還是函數,如果你輸入有問題,那麼都會在編譯的時候報告出來,方便你修改,而不是在執行的時候出錯,害的你到處去捉蟲子。

同時,面向對象又能解決代碼重用的問題——繼承。我以前寫了一個「狗」的類,屬性有(變數):有毛、4條腿、有翹著的尾巴(耷拉著尾巴的那是狼)、鼻子很靈敏、喜歡吃肉骨頭......方法有(函數):能跑、能聞、汪汪叫......如果它去抓耗子,人家叫它「多管閑事」。好了,狗這個類寫好了。但在我實際的生活中,我家養的這條狗和我以前寫的這個「狗類」非常相似,只有一點點的不同,就是我的這條狗,它是:捲毛而且長長的,鼻子小,嘴小......。於是,我派生一個新的類型,叫「哈巴狗類」在「狗類」的基礎上,加上新的特性。好了,程序寫完了,並且是重用了以前的正確的代碼——這就是面向對象程序設計的好處。我的成功只是站在了巨人的肩膀上。當然,如果你使用VC的話,重用最多的代碼就是MFC的類庫。

閱讀全文

與面向對象怎麼編譯相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:144
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:736
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163