程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi面向對象的編程方法(三)

Delphi面向對象的編程方法(三)

編輯:Delphi

2.1.8.4 過程和函數的語句部分 

        過程或函數的語句部分由begin開始,end結束。函數需要一個返回值。可以將返回值賦給函數名稱,也可以將返回值賦給Result變量。下面的例程將返回值賦給函數名稱: 

function CalculateInterest(Principal,InterestRate: Double):Double;

begin

CalculateInterest := Principal * InterestRate;

end; 

        將返回值賦給Result變量也是可以的,則上面的程序改為: 

Result := Principal*InterestRate;

下面是這個函數的調用方法:

InterestEarned :=CalculateInterest(2000,0.012);

         在Implementation後面的過程和函數,可以且只能被此庫單元的事件處理過程使用。要讓過程和函數可以被其他的程序庫單元使用,則需要將過程或函數的標題部分放在庫單元中的interface部分,而把含標題的整個過程或函數放在庫單元的inplementation部分,並在要訪問這個過程或函數的庫單元的uses子句中加入說明這個過程或函數的庫單元名稱。 

2.1.8.5 函數的遞歸調用 

       在Object Pascal中,過程或函數必須先說明再調用。上文的NoValue函數必須在使用它的事件處理過程之前說明和執行,否則程序會報告一個未知標識符的錯誤。

         以上規則在遞歸調用時是例外情況。所謂遞歸調用,是指函數A調用函數B,而函數B又調用函數A的情況。在遞歸調用中,函數要進行前置,即在函數或過程的標題部分最後加上保留字forWord。下文的例程是一個遞歸調用的典型例子: 

implementation

var

alpha:Integer;

procedure Test2(var A:Integer):forWord;

{Test2被說明為前置過程}

procedure Test1(var A:Integer);

begin

A :=A-1;

if A>0 then

test2(A); {經前置說明,調用未執行的過程Test2}

writeln(A);

end;

procedure Test2(var A:Integer);{經前置說明的Test2的執行部分}

begin

A :=A div 2;

if A>0 rhen

test1(A); {Test2中調用已執行的過程Test1}

end; 

procedure TForm1.Button1Click(Sender:TObject);

begin

Alpha := 15; {Alpha賦初值}

Test1(Alpha); { 第一次調用Test1,遞歸開始}

end; 

           按鈕的OnClick事件處理過程給Alpha賦初值,並實現先減1再除2的循環遞歸調用,直到Alpha小於0為止。 

2.1.8.6 過程和函數的參數 

        當您的程序代碼在調用一個過程或函數時,通常用參數傳遞數據到被調用的過程或函數中。最常用的參數有數值參數、變量參數和常量參數三種。

         由被調用過程或函數定義的參數為形參,而由調用過程

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved