方法vsfunctionvs程序vs类?

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

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

其他三个术语……嗯,这取决于。

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

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

方法只是绑定到类的函数(或过程)的行话。 实际上,并非所有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都是方法。

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

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

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

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


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

希望,这很有帮助