Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are functions only in non-object-oriented languages? [duplicate]

I was asked to answer this question:

Where should I put the Javadoc specific comment notation of /** and */ if I want to tell the user specifics about a certain instance variable or method?

I answered with:

Above the function declaration.

The answer was rejected and this was the reason:

Functions are in non-object-oriented languages. Method is the proper name.

Is this true?

like image 671
user2124033 Avatar asked Mar 03 '13 17:03

user2124033


1 Answers

Are functions found only in non-object-oriented languages?

No. There are object-oriented languages that have functions. C#, for example, is an object-oriented language but it has anonymous functions.

What are the named procedures which are members of a type typically called in object-oriented languages like Java or C#?

Typically they are properly called methods, though this differs from language to language. In Java or C# I would say "method".

In Visual Basic, for example, the distiction is made between functions and subroutines on the basis of whether or not they return a value, not on the basis of whether they are associated with a type container.

JavaScript, an object-oriented language which uses prototype inheritance rather than class inheritance, typically refers to all of the above as "functions".

Do people frequently refer to methods as functions when speaking casually about Java or C#?

Yes. Were I writing documentation or a book or a scholarly article then I would be careful to make the distinction. In commonplace parlance though everyone reasonably conversant with the art of computer programming would understand "function" and "method" to be roughly synonyms. I would not have rejected your answer.

like image 153
Eric Lippert Avatar answered Oct 13 '22 06:10

Eric Lippert