方法 (计算机科学)

✍ dations ◷ 2025-12-06 09:55:35 #计算机编程

在面向对象编程中,方法(英语: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‘ 撰写的静态成员以及其客户端的例子:

相关

  • 毫米毫米(法语:millimètre;英式英文:millimetre,美式英文:millimeter),符号mm,是长度单位单位,台湾称为“公釐”、“公厘”或“毫米”,中国大陆称为毫米。1毫米相当于千分之一米(10-3,此即为
  • 谢尔盖·维诺格拉斯基谢尔盖·尼古拉耶维奇·维诺格拉茨基(俄语:Сергей Николаевич Виноградский,1856年9月1日-1953年2月25日),俄国微生物学家,生态学家,和土壤科学家。他
  • 鼠类鼠,又称老鼠或耗子,即鼠总科(Muroidea),是一种属于啮齿类的总科,其中含有仓鼠、沙鼠、大鼠、小鼠,以及其他亲缘动物。它们广泛分布于南极以外的各个大陆。由于难以测定各分类群之间
  • 玻意耳定律波意耳-马略特定律(英语:Boyle's law,也称作Boyle–Mariotte law或Mariotte's law),在定量定温下,理想气体的体积与压强成反比。是由爱尔兰化学家罗伯特·波义耳,在1662年根据实验
  • 东三省总督东三省总督(满语:ᡩᡝᡵᡤᡳ ᡳᠯᠠᠨ ᡤᠣᠯᠣᡳ ᡠᡥᡝᡵᡳ ᡴᠠᡩᠠᠯᠠᡵᠠ ᠠᠮᠪᠠᠨ,穆麟德:dergi ilan goloi uheri kadalara amban),正式官衔为总督东三省等处地方兼管三
  • 让-雅克·阿诺让-雅克·阿诺(法语:Jean-Jacques Annaud,1943年10月1日-),法国电影导演、电影制作人和编剧。澳门科技大学电影学院名誉院长。1943年,阿诺出生在法国法兰西岛大区埃松省奥尔日河畔
  • 普标语普标语(自称:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium","Gentium Alternat
  • 约翰·爱德华兹约翰尼·里德·“约翰”·爱德华兹(英语:Johnny Reid "John" Edwards,1953年6月10日-),美国民主党前参议员,2004年美国民主党副总统选举候选人(参议员约翰·克里为民主党2004年美国
  • 尼克拉斯·巴亚哥洛夫尼克拉斯·巴亚哥洛夫(瑞典语:Nicklas Bärkroth;1992年1月19日-)是一位瑞典足球运动员。在场上的位置是前锋。他现在效力于瑞典足球超级联赛球队布洛马波卡纳足球俱乐部。他也代
  • 本笃四世教宗本笃四世(拉丁语:Benedictus PP. IV;卒于903年夏)于900年1月至5月-903年7月岀任教宗。