Что такое метод, свойство и функция? - PullRequest
7 голосов
/ 22 ноября 2010

Да, я борюсь с этим. Я не могу различить их, потому что каждое объяснение, которое я читаю, настолько неясное и философское. Может кто-нибудь прояснить эти определения для меня? Спасибо, ребята.

Эти определения применимы как к процедурному программированию, так и к уп. Спасибо.

Ответы [ 6 ]

8 голосов
/ 22 ноября 2010

Функция представляет собой комбинацию команд, соединенных вместе для достижения некоторого результата. Может принимать аргументы и возвращать результат. Если функция не возвращает результат, ее обычно называют процедурой. Примеры:

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

Так что функции должны выполнять какую-то конкретную работу. Например, когда вам нужно нарисовать многоугольник из 3 линий как часть векторного изображения, удобнее вызывать drawLine трижды, чем помещать всю подпрограмму для рисования линий в линию.

Методы («функции-члены») похожи на функции, они принадлежат классам или объектам и обычно выражают глаголы объектов / класса. Например, объект типа Window обычно имеет методы open и close, которые выполняют соответствующие операции с объектом, которому они принадлежат.

Свойства такие же, как в обычном языке, и технически являются полями объектов / классов со специальными процедурами получения / установки (которые можно рассматривать как методы. Есть языки, у которых нет свойств, и такое поведение достигается с помощью закрытого поля + методы get / set.).

7 голосов
/ 22 ноября 2010

Со временем способы использования каждым из этих терминов изменились (и, вероятно, будут продолжать меняться), но вот что они, вероятно, имеют в виду, если вы читаете статьи, написанные в последнее десятилетие или около того:

Функции (или подпрограммы) - это относительно автономные, относительно независимые фрагменты кода, составляющие большую программу.

Методы - это функции, прикрепленные к конкретным классам (или экземплярам) в объектно-ориентированном программировании.

Свойства являются объектно-ориентированной идиомой. Термин описывает одну или две функции (в зависимости от желаемого поведения программы) - «получатель», который извлекает значение, и «установщик», который устанавливает значение. По соглашению, свойства обычно не имеют много побочных эффектов. (И побочные эффекты, которые они имеют, обычно имеют ограниченную область действия: они могут проверять установленный элемент, уведомлять слушателей об изменении или преобразовывать личные данные объекта в публично объявленный тип или из него.)

1 голос
/ 22 ноября 2010

Поле - Поле - это переменная любого типа, которая объявлена ​​непосредственно в классе или структуре.Поля являются членами их содержащего типа.

Свойство - Свойство - это член, который предоставляет гибкий механизм для чтения, записи или вычисления значения частногоfield.

Метод - Метод - это блок кода, содержащий серию операторов.В C # каждая выполняемая инструкция выполняется в контексте метода.

Процедура - Процедура - это блок кода, содержащий серию операторов.

Функция - Функция - это блок кода, содержащий серию операторов.Это результат операции возврата.

1 голос
/ 22 ноября 2010

Функция представляет собой автономную конструкцию, такую ​​как trim(), strlen(), fopen() и т. Д.

function myAbcFunction() { ... }

Метод представляет собой функцию объекта .Это определено в классе.Свойство - это просто свойство объекта:

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

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

Предлагаю прочитать руководство Классы и объекты глава.

0 голосов
/ 24 июня 2016

a) Функция Относится к блоку операторов, которые выполняют определенную задачу и возвращают значение.

b) Процедура Относится к строительным блокам программы, которые не возвращают значение при вызове.

c) Метод Указывает на действие, которое может выполнить объект.

0 голосов
/ 22 ноября 2010

В ООП первичной структурой является объект.

Метод - это именованное действие, которое может быть применено к объекту. Свойство - это именованное значение, которым обладает объект. Например, объект Human имеет свойство Age. Функция - вещь более общая, чем метод. Это просто действие, которое не принадлежит ни одному объекту. Но метод - это функция, которая принадлежит объекту.

...