Функция - это просто общее имя для части кода в программе. Слово «метод» является синонимом функции. Как и «подпрограммы» и «процедуры» и т. Д.
Функции Java и C ++ по большей части абсолютно одинаковы.
Слово "метод" имеет тенденцию использоваться для подпрограмм, связанных с экземпляром, в то время как "функция" имеет тенденцию использоваться для тех, которые являются глобальными / статическими.
Но даже тогда "методы" генерируются компилятором, как если бы они были "функциями".
Рассмотрим этот код C ++:
class Foo
{
public:
void DoFoo(int param)
{
printf("%d, %d\n", param, member);
}
private:
int member;
};
int main()
{
Foo f;
f.DoFoo(42);
return 0;
}
Компилятор генерирует код, эквивалентный следующему:
struct Foo
{
int member;
};
void Foo_DoFoo(Foo* this, int param)
{
printf("%d, %d\n", param, this->member);
}
int main()
{
Foo f;
Foo_DoFoo(&f, 42);
return 0;
}
Таким образом, различие между «методом» и «функцией» является всего лишь соглашением.