方法 (電腦科學)

在面向对象编程中，方法（英语：Method；德语：Methode； 法语：Méthode）指的是类别（所谓的类方法、静态方法或工厂方法）、或者是对象（所谓的实例方法）两者其中之一的一种子程序。如同过程化编程语言的程序，一个方法通常以一系列的语句所组成，并以之完成一个动作。其可以借由输入一组参数以制订所需的动作，且一部分的方法可能会有输出值（所谓的返回值）。方法的目的是提供一个机制，以访问（对于读和写）对象或类别的私有数据存储区。

方法的种类

如前所述，实例方法附属于特定对象，而类别或者静态方法（又称作共享方法）则附属于某个类别。在典型的实践中，实例方法发送一个隐藏的参考（举例来说，this或者self或者Me）给所属的对象（不论类别或类实例），所以它们可以访问与之相关的数据。一个类方法的典型例子即：在给定的类别中，其内部记录着已创建对象的计数。
构造函数类似于方法，不过它们是在语句区块中创建一个类的实例时，所自动调用的。在Java、C++、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