What is Method, Property and Function?

2019-02-13 18:14发布

Yeah, I'm struggling with that. I cannot distinguish among them because every explanation I read is so unclear and philosophical enough. Can someone clear up these definitions for me ? Thanks guys.

These definitions apply as much to procedural-programming as oop ? Thanks.

6条回答
Luminary・发光体
2楼-- · 2019-02-13 18:47

Function is a standalone construction like trim(), strlen(), fopen() etc.

function myAbcFunction() { ... }

Method is a function of object. It is defined in class. Property is just property of object:

class MyClass {
    public $property; // Public property: $objInstance->property
    protected $property2; // Protected property

    public function doSth() {
        // That's a method. $objInstance->doSth();
    }
}

I suggest read the manual Classes and Objects chapter.

查看更多
老娘就宠你
3楼-- · 2019-02-13 18:56

In OOP the primary structure is an object.

Method is a named action which can be applied to the object. Property is a named value, which the object has. For example, object Human has the property 'Age'. function is a more general thing, than a method. It is just an action, that doesn't belong to any object. But method is a function that belongs to the object.

查看更多
唯我独甜
4楼-- · 2019-02-13 18:57

Function is a combination of instructions coupled together to achieve some result. It may take arguments and return result. If a function doesn't return a result it is usually called a procedure. Examples:

function drawLine(x1, y1, x2, y2):
  // draws a line using Bresenham's algorithm from x1,y1 to x2,y2.
  // doesn't return anything

function <number> add(a, b):
  // adds a to b and returns the result as a number
  return a + b

So functions are to do some particular work. For example, when you need to draw a polygon of 3 lines as a part of a vector image it is more convenient to call drawLine thrice than to put all the routine for line drawing inline.

Methods ("member functions") are similar to functions, they belongs to classes or objects and usually expresses the verbs of the objects/class. For example, an object of type Window usually would have methods open and close which do corresponding operations to the object they belong.

Properties are as in everyday language and technically are fields of objects/classes with dedicated getter/setter routines (which can be considered as methods. There are languages that don't have properties and this behavior is achieved using a private field+get/set methods.).

查看更多
够拽才男人
5楼-- · 2019-02-13 18:57

Field - A field is a variable of any type that is declared directly in a class or struct. Fields are members of their containing type.

Property - A property is a member that provides a flexible mechanism to read, write, or compute the value of a private field.

Method - A method is a code block containing a series of statements. In C#, every executed instruction is done so in the context of a method.

Procedure - A procedure is a code block containing a series of statements.

Function - A function is a code block containing a series of statements. That return operation result.

查看更多
Anthone
6楼-- · 2019-02-13 18:57

a)Function Refers to block of statements that perform a particular task and return a value.

b)Procedure Refers to the building blocks of a program that do not return a value when called.

c)Method Refers to the action that object can perform.

查看更多
倾城 Initia
7楼-- · 2019-02-13 19:02

Over time, the way people use each of these terms has changed (and will likely keep changing), but here's what they probably mean if you're reading articles written in the last decade or so:

Functions (aka subroutines) are relatively self-contained, relatively independent pieces of code that make up a larger program.

Methods are functions attached to specific classes (or instances) in object-oriented programming.

Properties are an object-oriented idiom. The term describes a one or two functions (depending on the desired program behavior) - a 'getter' that retrieves a value and a 'setter' that sets a value. By convention, properties usually don't have many side-effects. (And the side-effects they do have usually have limited scope: they may validate the item being set, notify listeners of a change, or convert an object's private data to or from a publicly-declared type.)

查看更多
登录 后发表回答