objectpascal快速入門筆記01
注釋:;
(圓括號+星號注釋(塊注釋) ); // 雙斜槓注釋(行注釋); 不同形式注釋可巢狀使用。
物件命名:
對大小寫不敏感;
不能帶有空格; 第乙個字母盡量不要帶t(類)f(類中私有成員)i(介面);
識別符號:
ascii碼字符集;
任意長不帶空格的字串; 第一字元必須是字母或下劃線;
變數宣告:
var variablename:integer;
全域性變數:
一般在implementation後面宣告;
var variablename:type=constantexpression; 沒有初始化的情況下所有全域性變數會自動初始化0,區域性則根據變數型別的不同而不同;
常量:const pi = 3.141592653589793;
預定義型別:
1.整形(integer):-32768~32767,2byte;
shortint:-128~127,1byte; longint:-2147443648~2147483647,4byte; byte:0~255,1byte; word:0~65535,2byte。
2.實型(single): 可包含7-8位有效小數部分,4byte; double類可包含15-16位有效小數部分,8byte; extended類包含19-20位有效小數部分,10byte; comp類包含19-20位有效小數部分,8byte; 3.布林型(boolean):true/false,1byte; 4.字元型(char):乙個ascii字元:string一串最長255個; 5.指標型(pointer):可指向任何特定型別; 6.字串型(pchar):指向以零結尾的字串的指標; 保留字和指令字: 65個reservedwords; 39個directives;
資料型別:
1.簡單資料型別(******)
包括有序資料型別(ordinal)和實數資料型別(real)。 (1)整數型別 integer /signed32bit/ -2147483648~21473647 cardinal /unsigned32bit/ 0~4294967295 shortint /signed8bit/ -128~127 smallint /signed16bit/ -32768~32767 longint /signed32bit/ -2147483648~2147483647 int64 /signed64bit/ -2的63次方~2的63次方-1 byte /unsigned8bit/ 0~255 word /unsigned16bit/ 0~65535 longword /unsigned32bit/ 0~4294967295
(2)字元型別 ansichar:標準的乙個ansi字元,能夠儲存256個不同的字元,其對應的整數範圍為0~255。 widechar:2位元組的unicode字元,unicode字符集前256個字符集與ansi相同。 char:相當於widechar。
(3)布林型別 boolean:通用型別,單位元組。 bytebool:單位元組。 wordbool:雙位元組。 longbool:四位元組,0為false其它true。 0(false)1(true);
(4)列舉型別(enumerated) 由一組有序識別符號組成。型別中的每乙個值都有乙個說明它的位置決定的整型值。
(5)子界型別(subrange) 是下列這些型別中某範圍的值:整型,布林型,字元型或列舉型。限定了變數的可能取值範圍。
(6)浮點資料 是全體帶符號的實數的總稱,用來表示不同格式的實數資料。 real48,single,double,extended,comp,currency.
2.3.2 字串型別(string)
代表一組字元的變數型別。 ansistring:pascal預設字串型別,由ansichar組成,無長度限制,同時與null結束的字串相相容。 shortstring:常見於舊版delphi,長度限制在255個字元內。 widestring:功能類似ansistring,由widechar組成。 可以通過運算子,過程和函式進行字串型別的變數運算。
2.3.3 結構型別(struct)
(1)集合型別(set) 是一群相同型別元素的組合,型別必須是有限型別。set of basetype,支援運算子運算。
(2)陣列型別array 某種資料型別的有序組合,每乙個元素值由其相對位置決定。可在陣列的某個位置上放資料。
(3)記錄型別(record) 記錄是程式可以成組訪問的一群陣列的集合。 記錄包含可以儲存資料的域,每乙個域有乙個資料型別。
(4)指標型別(pointer) 指標型別的變數指向記憶體空間的位址。 將@運算子放在變數前面將獲取變數的位址,並可把位址賦值為同樣型別的指標。 把^運算子放在乙個資料型別的前面,可定義該型別的乙個指標型別,如放在乙個指標後面,可獲取該指標指向的位址記憶體空間的內容。
(5)變體型別(variant) 主要為惹支援ole自動化操作。 可支援所有簡單資料型別,可表達不均勻陣列。
(6)強制型別轉換和型別約定 通過它能使編譯器把一種型別的變數當作另一種型別。 只有當兩個變數的資料長度一樣時才能對變數進行強制轉換。
2.4 賦值語句
用於需要在程式設計時改變屬性的值,而有的屬性只能在執行時改變。 edit1.color :=clred;
2.5 過程與函式
(1)函式的宣告和使用 function 《函式名》 (《形式參數列》):《型別》; //函式頭 begin //函式體 《語句》; end; 返回值可由函式名返回和result傳回。
(2)過程的宣告和使用 procedure《過程名》 (《形式參數列》) //過程頭 begin //過程體 《語句》; end 在函式宣告中必須指明函式的返回型別,而過程不需要返回任何型別的值,所以無需宣告返回型別。 在函式體中必須將函式的型別返回給函式名,而在過程中則不存在此語句。
2.6 控制語句
(1)判斷語句 if計算乙個表示式,並根據計算結果決定程式流程。if保留字隨後跟隨乙個生成boolean值真假表示式(一般用=)。當表示式為true執行then,否則執行else後的語句或自動跳到下一程式。 if可以巢狀,復合語句前後需加上begin/end。 case語句適用於被判斷的變數或屬性是整型,字元型,列舉型或子界型時(longht除外)。
(2)迴圈語句 repeat語句會重複執行一行或一段語句直到某一狀態為真。語句以repeat開始,以until結束,其後跟隨被判斷的布林表示式。 while的布林值表示式在迴圈的開頭進行判斷。結果為真迴圈被執行否則退出迴圈,do結束。 for語句會執行一定的次數。它需要乙個迴圈變數來控制迴圈次數。 如知道迴圈迴圈要執行的次數建議用for迴圈; 如不知道迴圈次數但至少要執行一次選用repeat,可能一次不執行用while; 在迴圈中呼叫break()使得執行的程式在滿足某條件時立即跳出迴圈。 如想跳過迴圈部分**重新開始下一次迴圈,就呼叫continue()。 使用記錄型別變數時,可通過with語句指定一些語句都是針對某個變數來說的,這樣可簡化**的輸入量。 with obj do statement
@本地磁碟姬
ohayou.aimo.moe
微博:@萌萌的本地磁碟w
twitter:@amygreen
2023年08月22日
初探Object Pascal的類(九)
繼承 inheritance 在object pascal中,類的最強大功能之一就是可以通過繼承得到擴充套件。繼承 inheritance 是指取乙個現有的類,通過由它派生新類來增加功能。開始取得類稱為基類 base class 或者祖先類 ancestor class 新建立的類稱為派生類 der...
初探Object Pascal的類(四)
類的析構函式 析構函式也是一種特殊的方法,此方法在物件消失前會被自動呼叫。析構函式可以看成是建構函式的對立面,它通常用來釋放類所佔的記憶體,或者做一些清除工作。乙個類不一定必須要有乙個析構函式,因為基本的類析構函式可以代替。像建構函式一樣,析構函式也沒有返回值。儘管類可以有多重析構函式,但它不具有一...
Object Pascal基本資料型別所佔的位元組數
名稱 變數型別 shortint 8位有符號整數 byte 8位無符號整數 smallint 16位有符號整數 word 16位無符號整數 integer 32位有符號整數 longint 32位有符號整數 cardinal 32位無符號整數 int64 64位有符號整數 single 4位元組浮點...