我知道这些方法,程序,函数和类的基础知识,但我总是混淆区分面向对象编程的对比,所以请问任何机构能告诉我那些简单例子之间的区别吗?
答案 0 :(得分:30)
类,在当前的传统OOP中,是与处理该数据的函数/过程(成员函数或方法)绑定在一起的数据(成员变量)的集合。除了“包含”(更恰当地“与之相关”)后者之外,该类与其他三个术语没有任何关系。
其他三个词......好吧,这取决于。
功能是计算语句的集合。 程序也是如此。但是,在一些非常肛门的保持性语言中,函数返回一个值而一个过程不返回。在这些语言中,程序通常用于它们的副作用(如I / O),而函数用于计算并且倾向于避免副作用。 (这是我倾向于使用的用法。是的,我是那种肛门保留。)
然而,大多数语言并不是那种肛门保留,因此人们可以互换地使用“功能”和“程序”这两个术语,根据他们的背景选择一个到另一个。 (Modula- *程序员倾向于使用“过程”,而C / C ++ / Java /则会倾向于使用“function”,例如。)
方法只是绑定到类的函数(或过程)的行话。实际上,并非所有OOP语言都使用术语“方法”。在典型的(但不是通用的!)实现中,方法具有用于访问包含类的隐含的第一参数(称为诸如this
或self
之类的东西)。正如我所说,这不是普遍的。有些语言使第一个参数显式化(因此允许命名你想要的任何东西),而在其他语言中根本没有神奇的第一个参数。
已编辑添加此示例:
以下未经测试的和未编译的 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;
}
在此代码中,getMemberVariableProcedure
和getMemberVariableFunction
都是方法。
答案 1 :(得分:3)
程序,功能和方法通常都是相似的,它们包含一些处理语句。
我可以在这三者与使用它们的地方之间找到唯一的区别。
我的意思是'方法'通常用于定义类中的函数,其中可以定义几种类型的用户访问权限,如public,protected,private。
“程序”也是功能,但它们通常代表一系列功能,需要在完成一个功能或与另一个功能并行时执行。
类是相关属性和方法的集合。属性定义类的对象,其中方法是由类完成或在类上完成的操作。
希望,这很有帮助
答案 2 :(得分:1)
函数,方法和过程是同质的,并且它们每个都是执行某些计算的子例程。
一个子例程是:
毕竟,它们都是一段可重用的代码,可以完成某些工作,例如返回数据,计算或处理数据。
答案 3 :(得分:0)
之间没有区别。 方法:无返回类型,如void 功能:具有返回类型