方法 (计算机科学)

✍ dations ◷ 2025-12-08 12:19:24 #计算机编程

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

相关

  • 晕厥昏厥(英语:Syncope)-为快速发生、暂时性的、可自发性回复的意识及肌肉张力丧失之状态。昏厥起因为血液供应大脑的灌流不足,且通常由低血压引起。某些原因引起的昏厥在失去意识前
  • 梵(梵语:ब्रह्मन्,bráhman),印度宗教概念,源于自祭祀仪式所得的神秘力量,指宇宙的超越本体和终极实在,现世相对来说则只是不真的现象。又如:梵心(清净之心)、梵志(以清静为志)、
  • 高雄市电影馆高雄市电影馆(英语:Kaohsiung Film Archive)是台湾高雄市盐埕区座落于爱河旁,一个以艺术电影为主题的电影院与影视资料馆,源自于2002年11月成立之高雄市电影图书馆,为推广影视文化
  • 神懿王后神懿王后(신의왕후,1337年九月-1391年9月12日)韩氏,是朝鲜王朝开国君主太祖李成桂的元妃,本贯安边(清州),父亲安川府院君韩卿,母亲三韩国大夫人申氏。高丽忠肃王后六年(1337年)农历九月,
  • 金塔纳罗奥州金塔纳罗奥州(西班牙语:Quintana Roo)是墨西哥东部的一个州,位于尤卡坦半岛东部,东临墨西哥湾。历史上是尤卡坦州的一部分,1974年建州。著名的渡假胜地坎昆位于本州。
  • 刘易斯和克拉克率领的探险队刘易斯与克拉克远征(英语:Lewis and Clark expedition,1804年5月–1806年9月)是美国国内首次横越大陆西抵太平洋沿岸的往返考察活动。领队为美国陆军的梅里韦瑟·刘易斯上尉(Meri
  • 古代罗马的领养制度在古代罗马,领养男孩是很常见的事,尤其在上层社会元老院阶层中。罗马人普遍认为一个家庭至少要有一个男孩,因为家族需要一个男性继承人,但孩子又不能太多,原因是养育孩子的花费太
  • Move-to-front transformMTF(Move-To-Front)是一种数据编码方式,作为一个额外的步骤,用于提高数据压缩技术效果。MTF主要使用的是数据“空间局部性”,也就是最近出现过的字符很可能在接下来的文本附近再
  • 铁峰顶铁峰顶 — 化学元素丰度图上,在 Fe(V、Cr、Mn、Fe、Co和Ni)元素邻近的局部极大。在铁之前的元素进行核聚变释放能量,比铁重的元素需要消耗能量才能进行核聚变,取代的是以核分裂释
  • 扬希尔县扬希尔县(英语:Yamhill County)是美国俄勒冈州西北部的一个县。面积1,861平方公里。根据美国2000年人口普查,共有84,992人。县治麦克文维 (McMinnville)。成立于1943年7月5日,是