首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 面向對象程式設計:作用域與自訂程序函數(上)

     編輯:Delphi

識別符作用域核心概念

識別符(變數、常數、型別、程序等)的作用域定義其可被存取的程式區域。最小宣告模組外的程式碼無法存取該識別符,只有重新進入宣告模組才能訪問。這構成了區域變數的基礎特性:離開模組後,變數即從記憶體釋放。

跨模組存取與限定名稱

若需在當前單元存取其他單元的識別符,需在 uses 子句引入目標單元,並以 單元名.識別符 形式呼叫,例如 Unit1.CalculateInterest(...)。此機制確保模組封裝性,防止命名空間污染。

同名識別符的遮蔽規則

編譯器自動綁定「最接近當前作用域」的識別符。開發者可在不同層級宣告同名識別符,內層宣告會遮蔽外層同名項目。

全域變數與初始化區段

單元層級的全域變數通常置於 implementation 後的 var 區段。為確保邏輯正確(如按鈕點擊計數器),需在單元結尾的 initialization 區段進行初始化:

implementation
var
  Count: Integer;

initialization
  Count := 0;

面向物件寫法可將此類狀態封裝為表單欄位(field),詳見後續章節。

撰寫自訂程序與函數

將重複邏輯抽離為獨立程序/函數,優點:程式碼複用、結構清晰、維護容易。函數以 function 開頭並指定回傳型別;程序以 procedure 開頭。參數列表用分號分隔,同型別參數可合併:procedure ValidateDate(Day, Month, Year: Integer);

實用範例:輸入驗證函數

function NoValue(AnEditBox: TEdit): Boolean;
begin
  if AnEditBox.Text = '' then
  begin
    AnEditBox.Color := clRed;
    AnEditBox.Text := '請輸入整數值';
    Result := True;
  end
  else
  begin
    AnEditBox.Color := clWindow;
    Result := False;
  end;
end;

事件處理程序中調用:if NoValue(Edit1) or NoValue(Edit2) then Exit; 實現防呆邏輯。

區域型別宣告與排序慣例

程序/函數內可宣告區域型別(type)、變數(var)、常數(const)。慣例順序:型別 → 變數 → 常數,但只要位於標題之後、執行碼之前即合法。型別名稱慣用 T 開頭(如 TPrimaryColor),便於識別。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved