有人能简单解释OOP环境中的方法与函数吗?
当前回答
在C++中,有时使用方法来反映类的成员函数的概念。然而,最近我在《C++编程语言第四版》一书中发现了一个声明,第586页“派生类”
虚函数有时称为方法。
这有点令人困惑,但他说,有时,C++创建者倾向于将方法视为可以在对象上调用的函数,并且可以表现为多态。
其他回答
以下是使用JavaScript示例对方法与函数的一些解释:
测试(20,50);是函数定义并用于运行某些步骤或返回可以存储/使用的内容。
您可以重用代码:定义一次代码并多次使用它。您可以多次使用相同的代码和不同的参数,以产生不同的结果。
var x = myFunction(4, 3); // Function is called, return value will end up in x
function myFunction(a, b) {
return a * b; // Function returns the product of a and b
}
var test=something.test();这里test()可以是某个对象的方法,也可以是为内置对象自定义的原型,这里有更多解释:
JavaScript方法是可以对对象执行的操作。JavaScript方法是包含函数定义的属性。
javascript中字符串的内置属性/方法:
var message = "Hello world!";
var x = message.toUpperCase();
//Output: HELLO WORLD!
自定义示例:
function person(firstName, lastName, age, eyeColor) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.eyeColor = eyeColor;
this.changeName = function (name) {
this.lastName = name;
};
}
something.changeName("SomeName"); //This will change 'something' objject's name to 'SomeName'
例如,您还可以为String、Array等定义财产
String.prototype.distance=函数(char){var index=this.indexOf(char);如果(索引==-1){console.log(char+“不出现在”+this中);}其他{console.log(char+“是”+(this.length-index)+“字符串末尾的字符!”);}};var something=“ThisIsSomeString”//现在像这样使用distance,运行并检查控制台日志距离(“m”);
一些参考:Javascript对象方法,函数,原型的更多信息
方法是类的函数。用正常的术语来说,人们在各处交换方法和功能。基本上,您可以将它们视为相同的东西(不确定全局函数是否称为方法)。
http://en.wikipedia.org/wiki/Method_(计算机科学)
函数和方法看起来非常相似。它们也有输入和返回输出。区别在于方法在类内部,而函数在类外部。
函数是一组可以用来处理数据的逻辑。
而Method是一个用于处理其所属对象的数据的函数。因此,从技术上讲,如果您有一个与您的类不完全相关但在类中声明的函数,那么它不是一个方法;这被称为糟糕的设计。
我知道还有很多人已经回答了,但我发现以下是一个简单而有效的单行答案。虽然它看起来并没有比这里的其他答案好很多,但如果你仔细阅读它,它提供了你需要了解的关于方法与函数的一切。
方法是具有定义的接收器的函数,在OOP术语中,方法是对象实例上的函数。