方法vs功能vs程序vs类?

时间:2010-06-14 10:02:00

标签: c objective-c oop

我知道这些方法,程序,函数和类的基础知识,但我总是混淆区分面向对象编程的对比,所以请问任何机构能告诉我那些简单例子之间的区别吗?

4 个答案:

答案 0 :(得分:30)

,在当前的传统OOP中,是与处理该数据的函数/过程(成员函数或方法)绑定在一起的数据(成员变量)的集合。除了“包含”(更恰当地“与之相关”)后者之外,该类与其他三个术语没有任何关系。

其他三个词......好吧,这取决于。

功能是计算语句的集合。 程序也是如此。但是,在一些非常肛门的保持性语言中,函数返回一个值而一个过程不返回。在这些语言中,程序通常用于它们的副作用(如I / O),而函数用于计算并且倾向于避免副作用。 (这是我倾向于使用的用法。是的,我是那种肛门保留。)

然而,大多数语言并不是那种肛门保留,因此人们可以互换地使用“功能”和“程序”这两个术语,根据他们的背景选择一个到另一个。 (Modula- *程序员倾向于使用“过程”,而C / C ++ / Java /则会倾向于使用“function”,例如。)

方法只是绑定到类的函数(或过程)的行话。实际上,并非所有OOP语言都使用术语“方法”。在典型的(但不是通用的!)实现中,方法具有用于访问包含类的隐含的第一参数(称为诸如thisself之类的东西)。正如我所说,这不是普遍的。有些语言使第一个参数显式化(因此允许命名你想要的任何东西),而在其他语言中根本没有神奇的第一个参数。


已编辑添加此示例:

以下未经测试的未编译的 C ++代码应该会向您展示所涉及的内容。

class MyClass
{
  int memberVariable;

  void setMemberVariableProcedure(int v)
  {
    memberVariable = v;
  }

  int getMemberVariableFunction()
  {
    return memberVariable;
  }
};

void plainOldProcedure(int stuff)
{
  cout << stuff;
}

int plainOldFunction(int stuff)
{
  return 2 * stuff;
}

在此代码中,getMemberVariableProceduregetMemberVariableFunction都是方法。

答案 1 :(得分:3)

程序,功能和方法通常都是相似的,它们包含一些处理语句。

我可以在这三者与使用它们的地方之间找到唯一的区别。

我的意思是'方法'通常用于定义类中的函数,其中可以定义几种类型的用户访问权限,如public,protected,private。

“程序”也是功能,但它们通常代表一系列功能,需要在完成一个功能或与另一个功能并行时执行。


类是相关属性和方法的集合。属性定义类的对象,其中方法是由类完成或在类上完成的操作。

希望,这很有帮助

答案 2 :(得分:1)

函数,方法和过程是同质的,并且它们每个都是执行某些计算的子例程。

一个子例程是:

  • 一种用于面向对象编程(OOP)的方法。方法不能返回任何内容(无效)或某些东西,并且/或者它可以更改子例程或方法之外的数据。
  • 一个过程,当它不返回任何内容但可以在子例程之外更改数据时,请考虑使用SQL存储过程。不考虑输出参数!
  • 一个函数,它在不更改子例程或函数外部的数据的情况下返回某些内容(其计算结果)。这就是SQL函数的工作方式。

毕竟,它们都是一段可重用的代码,可以完成某些工作,例如返回数据,计算或处理数据。

答案 3 :(得分:0)

之间没有区别。 方法:无返回类型,如void 功能:具有返回类型