方法
方法的种类
如前所述,实例方法附属于特定对象,而类别或者静态方法(又称作共享方法)则附属于某个类别。在典型的实践中,实例方法发送一个隐藏的参考(举例来说,this或者self或者Me)给所属的对象(不论类别或类实例),所以它们可以访问与之相关的数据。一个类方法的典型例子即:在给定的类别中,其内部记录着已创建对象的计数。
构造函数类似于方法,不过它们是在语句区块中创建一个类的实例时,所自动调用的。在Java、C++、C#以及PHP里,它们和所属对象的类别,皆有相同的名称。在Visual Basic里,构造函数称为New,而且在Object Pascal里,构造函数可以有用户所定义的名字(不过大多称作Create)。构造函数有一部分很像方法,不过也存在着许多差异,所以通常不把其视为方法。
析构函数是一个特殊的实例方法,它是在析构一个类的实例时,所自动调用的。在C++里,它们和所属对象的类别,皆有相同的名称,只不过在前面多了一个波浪号(~)。在Object Pascal里,析构函数可以有用户所定义的名字(不过大多称作Destroy)。
抽象方法是一个虚设代码的方法,它没有实现。它通常用来占住一个位置,让子类或者以此为原型的对象重载,并实现出相应的抽象方法。如此一来,抽象方法有助于明确表明一部分架构。
访问方法通常是一个小型、简单的,并提供一个用来从程序的其它部分访问对象状态的方法。虽然它引入了一个新的附属,但这是直接访问状态数据的首选方法,因其提供了一个抽象层。例如,如果银行账户类别提供了getBalance()的访问方法,其用以查询余额(而不是直接访问余额数据区域),之后该部分代码的修改版可以实现更复杂的查询余额机制(例如,获取数据库),而无须改变相关的代码。一个用来改变对象状态的访问方法,通常称作更新方法,有时又称作更动方法。提供这些方法的对象就被认为是可变对象。
静态(共享/类别)方法
如前所述,方法可能宣告为静态的(在Visual Basic里是shared,在Object Pascal里是class),即静态方法活动于类别层次,而非物理层次。静态方法不能触及一个特定的类实例(也就是不能触及this、self、Me等等)以下是以C# 撰写的静态成员以及其客户端的例子:
publicclassExampleClass{publicstaticvoidStaticExample(){// 靜態方法的程式碼}publicvoidInstanceExample(){// 此處為實體方法的程式碼// 可以使用THIS}}/// 上述類別的客戶端:// 呼叫靜態方法(不包含實體)ExampleClass.StaticExample();// 呼叫實體方法ExampleClassobjMyExample=newExampleClass();objMyExample.InstanceExample();
参考条目
面向对象的建模
面向对象的系统分析
面向对象的系统设计
面向对象的程序设计
面向对象的程序设计语言
面向对象方法学
统一建模语言
软件设计模式
分析模式
软件重构
调试
参阅
实现继承
继承语义
子程序
虚拟继承
方法名
免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。
- 有价值
- 一般般
- 没价值