Страницы

Поиск по вопросам

пятница, 27 декабря 2019 г.

Разница между методом и функцией

#java


Есть ли разница между методом и функцией? Или это просто два разных названия одного
и того же?
    


Ответы

Ответ 1



И да, и нет. Если разбираться детально, то и функция и метод - это некоторый фрагмент кода, который можно вызвать по имени и, опционально, передать ему какие-либо параметры. С этой точки зрения различий никаких нет. С другой стороны, функция обычно включает в себя все необходимое для своей работы, а взаимодействие с внешним миром осуществляет через входные и выходные параметры, а также возвращаемое значение (использование глобальных переменных скорее исключение, а чаще просто грубая ошибка). Кроме того, функция является самостоятельной единицей и может быть вызвана в любом месте программы без ограничений (ну почти, необходимость подключения библиотек и т.д. оставим в стороне). Метод же для своей работы может использовать поля объекта и/или класса, в котором определен, напрямую, без необходимости передавать их во входных параметрах. Это похоже на использование глобальных переменных в функциях, но в отличие от глобальных переменных, метод может получать прямой доступ только к членам класса. Метод привязан к классу, если он статический, или объекту и может быть вызван только через этот класс или объект. Из-за этих, весьма существенных, отличий метод и получил отдельный термин, в некотором смысле сокращение от "Метод (способ) взаимодействия с классом или объектом". В целом, называть метод функцией не является ошибкой (обратное неверно), главное понимать концептуальные отличия этих терминов. PS: Это касается любых языков программирования, поддерживающих концепцию объектно-ориентированного программирования.

Ответ 2



В мире Джавы нет функций, есть только методы (ну и все остальное).

Ответ 3



Методы в Java — это законченная последовательность действий (инструкций), направленных на решение отдельной задачи. По сути, это функции (они же процедуры, подпрограммы) более ранних, не ООП языков. Только эти функции являются членами классов и для различия с обычными функциями, согласно терминологии объектно-ориентированного программирования, называются методами. Простой способ запомнить: F unction → F ree (Свободные означает не принадлежность к объекту или классу) M ethod → ​​ M ember (член объекта или класса)

Ответ 4



Это концептуальныe понятия той или иной среды программирования.

Ответ 5



Ещё есть мнение, что функция возвращает значение, а метод нет. Это примерно так же как и с аргументами и параметрами.

Комментариев нет:

Отправить комментарий