跳转到内容

方法 (電腦科學)

本页使用了标题或全文手工转换
维基百科,自由的百科全书
(重定向自方法 (计算机科学)

物件導向程式設計中,方法(英語:Method;德語:Methode; 法語:Méthode)指的是類別(所謂的類別方法靜態方法工廠方法)、或者是物件(所謂的實體方法)兩者其中之一的一種子程式。如同程序化程式語言的程序,一個方法通常以一系列的語句所組成,並以之完成一個動作。其可以藉由輸入一組參數以制訂所需的動作,且一部分的方法可能會有輸出值(所謂的返回值)。方法的目的是提供一個機制,以存取(對於讀和寫)物件或類別的私有資料儲存區。

方法的種類

[编辑]

如前所述,實體方法附屬於特定物件,而類別或者靜態方法(又稱作共享方法)則附屬於某個類別。在典型的實踐中,實體方法傳送一個隱藏的參考(舉例來說,this或者self或者Me)給所屬的物件(不論類別或類別實例),所以它們可以存取與之相關的資料。一個類別方法的典型例子即:在給定的類別中,其內部記錄着已建立物件的計數。

建構子類似於方法,不過它們是在語句區塊中建立一個類別的實體時,所自動呼叫的。在JavaC++C#以及PHP裡,它們和所屬物件的類別,皆有相同的名稱。在Visual Basic裡,建構子稱為New,而且在Object Pascal裡,建構子可以有使用者所定義的名字(不過大多稱作Create)。建構子有一部分很像方法,不過也存在著許多差異,所以通常不把其視為方法。

解構子是一個特殊的實體方法,它是在解構一個類別的實體時,所自動呼叫的。在C++裡,它們和所屬物件的類別,皆有相同的名稱,只不過在前面多了一個波浪號(~)。在Object Pascal裡,解構子可以有使用者所定義的名字(不過大多稱作Destroy)。

抽象方法是一個虛設代碼的方法,它沒有實作。它通常用來佔住一個位置,讓子類別或者以此為原型的物件重載,並實作出相應的抽象方法。如此一來,抽象方法有助於明確表明一部分架構

存取方法通常是一個小型、簡單的,並提供一個用來從程式的其它部分存取物件狀態的方法。雖然它引入了一個新的附屬,但這是直接存取狀態資料的首選方法,因其提供了一個抽象層。例如,如果銀行帳戶類別提供了getBalance()的存取方法,其用以查詢餘額(而不是直接存取餘額資料區域),之後該部分代碼的修改版可以實作更複雜的查詢餘額機制(例如,取得資料庫),而無須改變相關的代碼。一個用來改變物件狀態的存取方法,通常稱作更新方法,有時又稱作更動方法。提供這些方法的物件就被認為是可變物件

靜態(共享/類別)方法

[编辑]

如前所述,方法可能宣告為靜態的(在Visual Basic裡是shared,在Object Pascal裡是class),即靜態方法活動於類別層次,而非實體層次。靜態方法不能觸及一個特定的類別實例(也就是不能觸及thisself,Me等等)以下是以C‘ 撰寫的靜態成員以及其客戶端的例子:

 public class Example
   public static void StaticExample
      // 靜態方法的程式碼
   public void InstanceExample
    M// 此處為實體方法的程式碼
   M// 可以使用THIS
 /// 上述類別的客戶端:
 // 呼叫靜態方法(不包含實體)
 ExampleClass.StaticExample
 // 呼叫實體方法
 ExampleClass objMyExample = ExampleClass
 objMyExample.InstanceExample

参考条目

[编辑]

參閱

[编辑]
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy