Добрый день скажите Как создаётся функция в java дайте пару наглядных примеров, и какая разница между функцией и Методом, заранее спасибо.
Denys
4 уровень
Функция и Методы в Java
Обсуждается
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Denys
21 ноября 2020, 21:11
Скажите А конструктор и Метод ? вчеём разница, в возврате згачения?? Метод возвращает а Конструктор нет ?? Зарание спасибо.
0
JustinianJudge в Mega City OneMaster
21 ноября 2020, 21:17
Конструктор это специальный метод с рядом требований:
- нету явно указанного типа возвращаемого значения, грубо говоря - конструктор ничего не возвращает, в отличие от методов - которые должны явно указать возвращаемый тип, либо void если ничего не возвращает
- имя конструктора должно совпадать с именем класса, учитывая регистр
- конструктор отрабатывает при создании экземпляра класса
пример конструктора:
здесь мы видим конструктор - нету типа возвращаемого значения , имя конструктора совпадает с именем класса.
при создании экземпляра мы указываем аргумент "Васька" который и попадет в конструктор при создании экземпляра.
Метод может быть вызван бесконечное количество раз.
Конструктор отработает для конкретного экземпляра только один единственный раз - при создании экземпляра объекта
+2
JustinianJudge в Mega City OneMaster
21 ноября 2020, 20:49
Функция это общекомпьютерный термин, обозначающий подпрограмму, структурно обособленный небольшой кусок кода.
В джаве функции называются методами. В каких-то языках программирования это функции, в каких-то называют методы. В джаве это методы.
Что можно почитать на тему..
- https://javarush.com/groups/posts/2757-chto-takoe-metodih-v-java
- https://javarush.com/groups/posts/1950-metodih-ikh-parametrih-vzaimodeystvie-i-peregruzka
- https://javarush.com/groups/posts/1381-metodih-v-java
Почитай, будут вопросы - задавай.
+3
Wladyslaw Java Developer Master
22 ноября 2020, 09:00
Оно все в джаве, вроде как, методы - потому что в классе, но с другой стороны, например, всякие утильные статические методы в классах, внутри которых ничего другого нет, никакого состояния, которые работают исключительно со своими аргументами - получается, вроде как функция. Потому что, по сути, независима, ни на что не завязнна.
Хотя, ярые ООП-пуристы скажут что таких классов быть не должно в принципе.
0
JustinianJudge в Mega City OneMaster
22 ноября 2020, 10:06
Не вроде :)
Есть синтаксис языка, есть JLS.
На уровне синтаксиса, с которым мы работаем, подпрограммы в джаве называются методами. Это чисто название - процедуры в паскале, функции в С, методы в джаве.
Нужно очень четко расграничивать, где мы говорим о языке как синтаксисе и конкретно о джаве.
И где мы выходим на другой уровень абстракции, где называем классы - программами , методы - функциями, и рассуждаем в общекомпьютерной плоскости, что такое функции, что такое чистые функцие и тд.
Я часто встречаю, как те у кого бекграунд на других языках,, то методами называют, т о функциями, странно, почему не процедурами :) Это не является корректным в принципе. В каждом языке свои правила, и взаимозаменяемое использование терминов может путать и других и себя. Ну назвали класс классом, метод методом, пусть так и будет.
Смешивать различные уровни абстракции не является корректным занятием с точки зрения формальной логики. Оно может и допустимо иногда но в ограниченном количестве случаев.
п.с. кстати, конструкторы это по сути методы, точно так же, как методы - функции. Но опять же, если все начнут на конструкторы методы говорить ) поправил метод, вызвал метод, опять же, по сути это верно. Но путаницу вызвать может. Я вот об этом аспекте имею ввиду
+1
Wladyslaw Java Developer Master
22 ноября 2020, 10:16
да, с точки зрения именно джавы - все они методы, безусловно.
Я сам никогда слово функция в контексте джавы не использую, так рассуждаю просто :)
+1
JustinianJudge в Mega City OneMaster
22 ноября 2020, 10:32
quod licet jovi или как там ))
Я исходил из того, что на начальном этапе нужно четко разграничить терминологию, чтобы не путаться. Поэтому тебе можно :) Тем кто только начал изучать, нет :) Они должны фокусироваться на главном, и так слишком всего много на них наваливается, глаза разбегаются, важно дать/найти какую-то стабильность, островки понимания, и постепенно расширять плацдарм. А тут только копни, методы, функции, чистые функции, виртуальные функции и тд ))
+2